Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I globally configure RSpec to keep the '--color' and '--format specdoc' options turned on

As you can see in the docs here, the intended use is creating ~/.rspec and in it putting your options, such as --color.

To quickly create an ~/.rspec file with the --color option, just run:

echo '--color' >> ~/.rspec 

One can also use a spec_helper.rb file in all projects. The file should include the following:

RSpec.configure do |config|
  # Use color in STDOUT
  config.color = true

  # Use color not only in STDOUT but also in pagers and files
  config.tty = true

  # Use the specified formatter
  config.formatter = :documentation # :progress, :html,
                                    # :json, CustomFormatterClass
end

Any example file must require the helper to be able to use that options.


In your spec_helper.rb file, include the following option:

RSpec.configure do |config|
  config.color_enabled = true
end

You then must require in each *_spec.rb file that should use that option.


If you use rake to run rspec tests then you can edit spec/spec.opts

http://rspec.info/rails/runners.html


Or simply add alias spec=spec --color --format specdoc to your ~/.bashrc file like me.


One thing to be aware of is the impact of the different ways of running RSpec.

I was trying to turn on the option with the following code in spec/spec_helper.rb -

Rspec.configure do |config|
  config.tty = $stdout.tty?
end
  1. calling the 'rspec' binary directly - or as 'bundle exec rspec' and checking $stdout.tty? will return true.
  2. invoking the 'rake spec' task - or as 'bundle exec rake spec' - Rake will invoke rspec in a separate process, and $stdout.tty? will return false.

In the end I used the ~/.rspec option, with just --tty as its contents. Works well for me and keeps our CI server output clean.


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!