Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


No Maintenance Intended Circle CI Dependency Status Gem Version

Zeus is a tool for speeding up your tests by preloading a Rails app. parallel_tests also speeds up your tests by running them, well, in parallel. Two good gems, so why not to use them together? Let's make our CPUs sweat!

Show me the numbers!


$ time rspec spec


Finished in 1 minute 8.34 seconds
916 examples, 0 failures

real    1m21.480s
user    1m4.805s
sys     0m4.516s


$ time rake parallel:spec[8]
Using recorded test runtime
8 processes for 141 specs, ~ 17 specs per process


916 examples, 0 failures

Took 46.626499 seconds

real    0m55.790s
user    4m3.065s
sys     0m32.160s


$ time zeus rake parallel:spec[8]
Developer helpers loaded
Using recorded test runtime
8 processes for 141 specs, ~ 17 specs per process


916 examples, 0 failures

Took 26.610327 seconds

real    0m28.514s
user    0m0.732s
sys     0m0.061s

Ready to go?


RailsCast episode #413 Fast Tests

Add this line to your application's Gemfile:

gem 'zeus-parallel_tests'

And then execute:

$ bundle

You need also to initialize your project with custom Zeus plan:

$ zeus-parallel_tests init

This will create two files in your project:

  • custom_plan.rb
  • zeus.json


For RVM users it is recommended to install rubygems-bundler gem.


First follow instructions and prepare your application to use parallel_tests.

Launch another terminal and run zeus' master process:

$ bundle exec zeus start

Then you can run your parallel specs:

$ zeus parallel_rspec spec

or your cucumbers:

$ zeus parallel_cucumber features

What is supported?

  • rspec
  • cucumber
  • guard-rspec since v2.5.2 (just pass zeus: true and parallel: true into configuration hash, you can play with bundler: false option to speed things up)
  • caching: you must set config.cache_store = :memory_store as Zeus will not reload the various cache files used by parallel_tests instances


  • minitest support


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request