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
.
(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.
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 1RSPEC_RERUN_EXCLUDE_PATTERN
: rspec will skip those files which are matched using this globRSPEC_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
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