SkillAgentSearch skills...

Multitest

Run your ruby tests in parallel

Install / Use

/learn @ngauthier/Multitest
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

= 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

You will need to have Gemcutter[http://gemcutter.org/] in your list of gem sources.

gem install 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.

View on GitHub
GitHub Stars5
CategoryDevelopment
Updated3y ago
Forks2

Languages

Ruby

Security Score

70/100

Audited on Jan 28, 2023

No findings