Em 29-04-2011 00:19, Adam Esterline escreveu:
Both https://github.com/test-load-balancer and
https://github.com/grosser/parallel_tests seem more complicated than
needed.    They both require other moving parts (database; other
server).    It seems now with ruby 1.9 and jruby a simpler solution
(maybe harder to code) would be to use a queue and native threads.

Thoughts?

The multiple databases will be necessary even if you do have multiple threads if you are accessing your database in your tests, unless either: - You run all your examples that hit the database in a single thread, or; - You will have to careful choose how to write your tests in a thread-safe way, which will is very likely error prone and you should make your tests as simple as possible.

On the other hand, having as many databases as many threads/processes you have is a much simpler solution and it is not that complicated since Rails can generate them for you: "rake parallel:create_databases" or something like that.

Cheers, Rodrigo.


On Thu, Apr 28, 2011 at 5:53 PM, Sidu Ponnappa<ckponna...@gmail.com>  wrote:
You can also take a look at https://github.com/test-load-balancer

Best,
Sidu.
http://c42.in
http://about.me/ponnappa

On 29 April 2011 01:24, Adam Esterline<a...@esterlines.com>  wrote:
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
has problems:

*   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?

1.    Is RSpec the right tool?    If no, what would you suggest?
2.    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).
  Thoughts?
3.    Other ideas?

Thanks for any help you can give.

AE
__

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to