Crystalball is a Ruby library which implements Regression Test Selection mechanism originally published by Aaron Patterson. Its main purpose is to select a minimal subset of your test suite which should be run to ensure your changes didn't break anything.

Build Status Maintainability Test Coverage


Add this line to your application's Gemfile:

group :test do
  gem 'crystalball'

And then execute:

$ bundle

Or install it yourself as:

$ gem install crystalball


Please see our official documentation.


We use semantic versioning for our releases.


After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install.


Bug reports and pull requests are welcome on GitHub at This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.


Crystalball is released under the MIT License.