RSpecKneesAndToes sniffs out brittle tests within your RSpec suite when using Parallel Tests.
It uses the Parallel Tests log files to identify groups of seeds and specs that failed on the previous run and runs RSpec bisect on the offending groups.
RSpec Knees and Toes: Because our first name had a trademark.
This gem assumes that: you are using the following within your application:
- You are using RSpec
- You are using Parallel Tests (https://rubygems.org/gems/parallel_tests)
- You have enabled random spec ordering in RSpec (e.g., you have
config.order = :random
in your RSpec configuration) - You are logging failures and parallel spec runs as detailed in the Setup section below
Add this line to your application's Gemfile:
gem 'rspec_knees_and_toes'
And then execute:
$ bundle
Add this line to your application's Rakefile:
require 'rspec_knees_and_toes/tasks'
And then add the following lines to your '.rspec' configuration file:
--format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
--format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log
To bisect a failing parallel spec run, run the following rake task:
$ rake knees_and_toes:bisect
To run tests, just use rspec
. To build a new knees and toes .gem file:
$ gem build rspec_knees_and_toes.gemspec
Check out the contributing readme for information on how to contribute to the project.
This project is released under the Apache2 free software license. More information can be found in the LICENSE file.