garnierjm / parallel_specs forked from grosser/parallel_specs
- Source
- Commits
- Network (11)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
Jean-Michel Garnier (author)
Fri Jul 24 02:05:45 -0700 2009
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Thu Jun 04 00:18:17 -0700 2009 | |
| |
README.markdown | ||
| |
Rakefile | ||
| |
lib/ | ||
| |
spec/ | ||
| |
tasks/ |
README.markdown
Rake tasks to run specs in parallel, to use multiple CPUs and speedup test runtime.
Setup
script/plugin install git://github.com/grosser/parallel_specs.git
Add <%= ENV['TEST_ENV_NUMBER'] %> to the database name for the test environment in config/database.yml,
it is '' for process 1, and '2' for process 2.
test:
adapter: mysql
database: xxx_test<%= ENV['TEST_ENV_NUMBER'] %>
username: root
For each environment, create the databases
mysql -u root -> create database xxx_test2;
Run like hell :D
rake spec:parallel:prepare[2] #db:reset for each database
rake spec:parallel[1] --> 86 seconds
rake spec:parallel --> 47 seconds (default = 2)
rake spec:parallel[4] --> 26 seconds
...
Example output
2 processes for 210 specs, ~ 105 specs per process
... test output ...
Results:
877 examples, 0 failures, 11 pending
843 examples, 0 failures, 1 pending
Took 29.925333 seconds
TIPS
./script/generate rspecif you are running rspec from gems (this plugin uses script/spec which may fail if rspec files are outdated)- with zsh this would be
rake "spec:parallel:prepare[3]"
TODO
- find out how many CPUs the user has here
- grab the 'xxx examples ..' line and display them after all tests have finished
Authors
inspired by pivotal labs
Contributors
- Joakim Kolsjö -- joakim.kolsjo<$at$>gmail.com
Michael Grosser
grosser.michael@gmail.com
Hereby placed under public domain, do what you want, just do not hold me accountable...

