rspec-rerun reruns failed RSpec examples (for brittle tests).
It writes failed examples to the file rspec.failures
and feeds these back to RSpec via -e
.
Usage
(For RSpec 2 use version '~> 0.3.1'. )
# Gemfile
group :development, :test do
gem 'rspec-rerun'
end
# Rakefile
require 'rspec-rerun/tasks'
task default: 'rspec-rerun:spec'
echo rspec.failures >> .gitignore
Run rake
or rake rspec-rerun:spec
. Failed examples will be rerun automatically.
Parameters
The rspec-rerun:spec
task accepts the following parameters:
-
retry_count
: number of retries, defaults to 1
e.g. rake rspec-rerun:spec[3]
. ZSH users will want to try noglob or quote around the task name: rake 'rspec-rerun:spec[3]'
.
You can set the following global environment variables:
-
RSPEC_RERUN_RETRY_COUNT
: number of retries, defaults to the value ofretry_count
or 1 -
RSPEC_RERUN_PATTERN
: spec file pattern, defaults to the value defined byRSpec::Core::RakeTask
-
RSPEC_RERUN_TAG
: only execute the tag specified -
RSPEC_RERUN_VERBOSE
: if 'false', don't show the rspec command invoked by Rake
History
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.
Contributing
See CONTRIBUTING.
Copyright and License
MIT License, see LICENSE for details.
(c) 2012-2015 Artsy Inc., Daniel Doubrovkine and Contributors