Logo: Relish

  1. Sign up
  2. Sign in

Project: RSpec Core 2.5

read command line configuration options from files

RSpec reads command line configuration options from files in two different
locations:

Local: "./.rspec" (i.e. in the project's root directory) Global: "~/.rspec" (i.e. in the user's home directory)

Options declared in the local file override those in the global file, while
those declared in RSpec.configure will override any ".rspec" file.

Scenarios
color set in .rspec
Given
a file named ".rspec" with:
--color
And
a file named "spec/example_spec.rb" with:
describe "color_enabled" do
  context "when set with RSpec.configure" do
    before do
      # color is disabled for non-tty output, so stub the output stream
      # to say it is tty, even though we're running this with cucumber
      RSpec.configuration.output_stream.stub(:tty?) { true }
    end

    it "is true" do
      RSpec.configuration.should be_color_enabled
    end
  end
end
When
I run "rspec ./spec/example_spec.rb"
Then
the examples should all pass
custom options file
Given
a file named "my.options" with:
--format documentation
And
a file named "spec/example_spec.rb" with:
describe "formatter set in custom options file" do
  it "sets formatter" do
    RSpec.configuration.formatters.first.
      should be_a(RSpec::Core::Formatters::DocumentationFormatter)
  end
end
When
I run "rspec spec/example_spec.rb --options my.options"
Then
the examples should all pass
RSpec ignores ./.rspec when custom options file is used
Given
a file named "my.options" with:
--format documentation
And
a file named ".rspec" with:
--color
And
a file named "spec/example_spec.rb" with:
describe "custom options file" do
  it "causes .rspec to be ignored" do
    RSpec.configuration.color_enabled.should be_false
  end
end
When
I run "rspec spec/example_spec.rb --options my.options"
Then
the examples should all pass
using ERB in .rspec
Given
a file named ".rspec" with:
--format <%= true ? 'documentation' : 'progress' %>
And
a file named "spec/example_spec.rb" with:
describe "formatter" do
  it "is set to documentation" do
    RSpec.configuration.formatters.first.should be_an(RSpec::Core::Formatters::DocumentationFormatter)
  end
end
When
I run "rspec ./spec/example_spec.rb"
Then
the examples should all pass

Last published almost 2 years ago by dchelimsky.