Logo: Relish

  1. Sign in

Project: RSpec Core 3.6

filter_run_when_matching

You can configure a conditional filter that only applies if there are any matching
examples using config.filter_run_when_matching. This is commonly used for focus
filtering:

RSpec.configure do |c|
  c.filter_run_when_matching :focus
end

This configuration allows you to filter to specific examples or groups by tagging
them with :focus metadata. When no example or groups are focused (which should be
the norm since it's intended to be a temporary change), the filter will be ignored.

RSpec also provides aliases--fit, fdescribe and fcontext--as a shorthand for
it, describe and context with :focus metadata, making it easy to temporarily
focus an example or group by prefixing an f.

Background
Given
a file named "spec/spec_helper.rb" with:
RSpec.configure do |c|
  c.filter_run_when_matching :focus
end
And
a file named ".rspec" with:
--require spec_helper
And
a file named "spec/example_spec.rb" with:
RSpec.describe "A group" do
  it "has a passing example" do
  end

  context "a nested group" do
    it "also has a passing example" do
    end
  end
end
Scenarios
The filter is ignored when nothing is focused
When
I run rspec --format doc
Then
it should pass with "2 examples, 0 failures"
And
the output should contain:
A group
  has a passing example
  a nested group
    also has a passing example
Examples can be focused with `fit`
Given
I have changed it "has a passing example" to fit "has a passing example" in "spec/example_spec.rb"
When
I run rspec --format doc
Then
it should pass with "1 example, 0 failures"
And
the output should contain:
A group
  has a passing example
Groups can be focused with `fdescribe` or `fcontext`
Given
I have changed context to fcontext in "spec/example_spec.rb"
When
I run rspec --format doc
Then
it should pass with "1 example, 0 failures"
And
the output should contain:
A group
  a nested group
    also has a passing example

Last published over 1 year ago by myronmarston.