jasonm / parallel_test
- Source
- Commits
- Network (3)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
4f158ef
commit 4f158ef44b17469adc122b73fdbc5ea296f9726b
tree 292637998d5082b6e3cd8686c1c578d170c2adac
parent cb810d6d9ad8983b1069f211bd11a0801c9cff83
tree 292637998d5082b6e3cd8686c1c578d170c2adac
parent cb810d6d9ad8983b1069f211bd11a0801c9cff83
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Mon Jun 22 13:30:43 -0700 2009 | |
| |
README.markdown | ||
| |
Rakefile | ||
| |
lib/ | ||
| |
spec/ | ||
| |
tasks/ |
README.markdown
Rake tasks to run tests in parallel, to use multiple CPUs and speedup test runtime.
Based heavily on on http://github.com/grosser/parallel_specs/; i.e. this is a copy of parallel_spec with a handful of changes to run test/*/_test.rb instead of specs.
Setup
script/plugin install git://github.com/jasonm/parallel_test.git
Copy your test environment inside config/database.yml once for every cpu you got ('test'+number).
test:
adapter: mysql
database: xxx_test
username: root
test2:
adapter: mysql
database: xxx_test2
username: root
For each environment, create the databases
mysql -u root -> create database xxx_test2;
Run like hell :D
(Make sure your `test/test_helper.rb` does not set `ENV['RAILS_ENV']` to 'test')
rake test:parallel:prepare[2] #db:reset for each env
rake test:parallel[1] --> 86 seconds
rake test:parallel --> 47 seconds (default = 2)
rake test:parallel[4] --> 26 seconds
...
Example output
running tests in 2 processes
93 tests per process
starting process 1
starting process 2
... test output ...
Took 47.319378 seconds
TODO
- find out how many CPUs the user has
- sync the output, so that results do not appear all at once
- grab the 'xxx examples ..' line and display them at the bottom
- find a less hacky approach (without manual creation so many envs)
Author
inspired by pivotal labs
Michael Grosser
grosser.michael@gmail.com
Hereby placed under public domain, do what you want, just do not hold me accountable...

