I am looking for some advice on the best way to parallelize a large
set of browser-based regression tests written in rspec. Just as a
note; we are running these specs with RSpec 2.5 on JRuby 1.6.1.
Our current set of specs takes about 4 hours to run when it is not
parallelized. We have implemented a simple “bucket” parallelization
scheme that basically takes each spec file and divides them evenly
across a specified number of forked buckets. This simple solution
- Some forked buckets finish early and exit. They don’t get the
chance to contribute to finishing the remaining work.
- It is somewhat difficult to aggregate all the results into one
spot (Not really, but annoying).
So… What do I want?
- Is RSpec the right tool? If no, what would you suggest?
- It seems like having a queue of specs and a thread pool would
address my two points above. But… I don’t think RSpec is thread
safe (Specifically RSpec::Core.world and RSpec::Core.configuration).
- Other ideas?
Thanks for any help you can give.