The rspec-rerun gem is a drop-in solution to retry (rerun) failed RSpec examples. It may be useful, for example, with finicky Capybara tests. The strategy to rerun failed specs is to output a file called rspec.failures
that contains a list of failed examples and to feed that file back to RSpec via -e
.
Add rspec-rerun
to Gemfile
in the :development
and :test
groups.
If you're using RSpec 3, also add rspec-legacy_formatters
.
group :development, :test do
gem 'rspec-rerun'
gem 'rspec-legacy_formatters'
end
Require rspec-rerun
and change the default task in Rakefile
.
require 'rspec-rerun'
task :default => 'rspec-rerun:spec'
Run rake
or rake rspec-rerun:spec
. Failed examples will be rerun automatically.
The rspec-rerun:spec
task accepts the following parameters:
retry_count
: number of retries, defaults to 1, also available by setting
You can set the following global environment variables:
RSPEC_RERUN_RETRY_COUNT
: number of retries, defaults to the value ofretry_count
or 1RSPEC_RERUN_PATTERN
: spec file pattern, defaults to the value defined byRSpec::Core::RakeTask
RSPEC_RERUN_TAG
: only execute the tag specifiedRSPEC_RERUN_VERBOSE
: if 'false', don't show the rspec command invoked by Rake
A list of failed examples is stored in a file called rspec.failures
. It might also be a good idea that you add rspec.failures
to .gitignore
.
Rerunning failed specs has been a long requested feature #456 in RSpec. A viable approach was suggested in #596. The infrastructure from that pull request was merged and released with rspec-core 2.11, which enabled re-running specs outside of RSpec, as described in our blog post. This gem has evolved from it.
See CONTRIBUTING.
MIT License, see LICENSE for details.
(c) 2012-2015 Artsy Inc., Daniel Doubrovkine and Contributors