= multitest == Caveats Multitest is still very young, it is in active development and is no where near complete or robust. Multitest currently only works in a rails environment. It's only because I use "constantize". If you depend on fixture data in your database, you may have data inconsistency errors. I like to use an empty DB and then use factories with transactional tests, and this runs great. == Installation gem install ngauthier-multitest == Usage in your Rakefile: require 'multitest' require 'multitest/tasks' on the commandline: rake multitest rake multitest:units multitest:functionals multitest:integration == Configuration in your Rakefile: Multitest.cores = 8 == Benchmarks This is one of our largest apps. === Normal suite time rake test 259.03user 27.50system 5:14.76elapsed 91%CPU === 2 Cores time rake multitest 213.86user 23.38system 2:41.24elapsed 147%CPU === 4 Cores time rake multitest 223.18user 24.53system 2:08.96elapsed 192%CPU Note the wall-time differences of 5:14 vs 2:41. 195% speedup on two cores. On 4 cores there is only a speedup of 243%, but that's still quicker. If you send me impressive benchmarks, I'll be happy to put them up here (8 cores anyone?). == Require Errors If you get require errors like: Running multitest:units rake aborted! no such file to load -- test_helper Then you may want to use more absolute paths in your tests. For example, if you had: # test/unit/my_class.rb require 'test_helper' class MyClass < ActiveSupport::TestCase end You should change it to: # test/unit/my_class.rb require File.join(File.dirname(__FILE__), '..', 'test_helper') class MyClass < ActiveSupport::TestCase end == Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. == Copyright Copyright (c) 2009 Nick Gauthier. See LICENSE for details.