Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Use database namespacing to run rspec Selenium tests against rails in parallel
Branch: master

Initial spec tests in place

latest commit 764db7503d
Sean Grove authored
Failed to load latest commit information.
spec Initial spec tests in place
tasks Renamed to SpecStorm
test Renamed to SpecStorm
README.markdown Renamed to SpecStorm
init.rb Renamed to SpecStorm
install.rb Initial commit
uninstall.rb Initial commit



SpecStorm allows you to run your selenium tests concurrently (at the file-level) without colliding with one another, and with almost no changes to your current rspec selenium specs. It hashes each spec file and then uses the hash as a database prefix, giving us a nice namespacing mechanism. It auto-patches rails' link-generation to append a db_prefix parameter, and dynamically resets the prefix on each request.

It also includes an rspec helper that patches the Selenium Driver class to calculate the db prefix, and will automatically append it to any "open" command.

To read more about setting up Specstorm and its use cases, please read the original post on Sauce Lab's blog


sudo gem install parallel
script/plugin install git://
rake ss:setup


Use the rake task ss:prepare in order to prepare the database before each run. You can pass it the environment to prepare for (required) and the path full of specs to namespace (optional). If you leave out the path, it prepares for every spec file.

The most common (and default) usage is:

rake ss:prepare[selenium,integration]

Now start up a rails server with the appropriate environment with script/server -e selenium

For your specs, you'll want to add in the spec_storm helper:

require 'spec_helper'
require 'spec_storm_helper'

And finally, you can run your Selenium specs in parallel:

rake ss:launch[4,integration]

Sit back and watch as multiple browsers hit the same rails server, each with its own pristine environment!


  • Wrap it all into a nicer execution model. e.g. rake ss[integration] should reset the database, start the server, run the specs, and stop the server. Right now it's a bit too manual
  • Unit tests


  • Thanks to Michael Grosser for the parallel_specs plugin, which had some great pointers.
  • And thanks to Sauce Labs, for their push into concurrent testing.

Copyright (c) 2010 Sauce Labs Inc, released under the MIT license

Something went wrong with that request. Please try again.