This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Thu Jun 04 00:18:17 -0700 2009 | |
| |
README.markdown | Sat Nov 07 04:48:20 -0800 2009 | |
| |
Rakefile | Sun May 17 22:52:33 -0700 2009 | |
| |
lib/ | Sat Nov 07 04:48:20 -0800 2009 | |
| |
spec/ | Wed Sep 09 11:46:15 -0700 2009 | |
| |
tasks/ | Sat Nov 07 04:48:20 -0800 2009 |
README.markdown1: Add to
Speedup RSpec + Test::Unit + Cucumber by running parallel on multiple CPUs.
Setup
sudo gem install parallel
script/plugin install git://github.com/grosser/parallel_specs.git
1: Add to config/database.yml
test:
database: xxx_test<%= ENV['TEST_ENV_NUMBER'] %>
2: Create additional database(s)
script/db_console
create database xxx_test2;
...
3: Copy development schema (repeat after migrations)
rake parallel:prepare
4: Run!
rake parallel:spec # RSpec
rake parallel:test # Test::Unit
rake parallel:features # Cucumber
rake parallel:spec[1] --> force 1 CPU --> 86 seconds
rake parallel:spec --> got 2 CPUs? --> 47 seconds
rake parallel:spec --> got 4 CPUs? --> 26 seconds
...
Test just a subfolder (e.g. use one integration server per subfolder)
rake parallel:spec[models]
rake parallel:test[something/else]
partial paths are OK too...
rake parallel:test[functional] == rake parallel:test[fun]
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
Even process runtimes (for specs only atm)
Add to your spec/spec.opts :
--format ParallelSpecs::SpecRuntimeLogger:tmp/prallel_profile.log
It will log test runtime and partition the test-load accordingly.
TIPS
- if something looks fishy try to delete
script/spec - if
script/specis missing parallel:spec uses justspec(which solves some issues with double-loaded environment.rb) - 'script/spec_server' or spork do not work in parallel
./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 "parallel:prepare[3]"
TODO
- disable --drb for parallel running, so it works while e.g. spork is running
- make spec runtime recording/evaluating work with sub-folders
- add gem + cli interface
parallel_specs+parallel_tests+parallel_features-> non-rails projects - build parallel:bootstrap idea/basics
- make jRuby compatible basics
- make windows compatible (does anyone care ?)
Authors
inspired by pivotal labs
Contributors (alphabetical)
- Charles Finkel -- charles.finkel<$at$>gmail.com
- Jason Morrison -- jason.p.morrison<$at$>gmail.com
- Joakim Kolsjö -- joakim.kolsjo<$at$>gmail.com
- Maksim Horbu -- likonar<$at$>gmail.com
- Kpumuk -- kpumuk<$at$>kpumuk.info
- Tchandy -- tchandy<$at$>gmail.com
Michael Grosser
grosser.michael@gmail.com
Hereby placed under public domain, do what you want, just do not hold me accountable...







