Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Run your tests in parallel processes

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 tasks
Octocat-spinner-32 MIT-LICENSE
Octocat-spinner-32 README
README
Tickle
======

Tickle spawns multiple processes and tries running your test suite in parallel for reducing the time taken to run them. Thanks to http://github.com/jasonm/parallel_test for the concept.

Setup
=====

To install :

	$ script/plugin install git://github.com/lifo/tickle.git

Example
=======

To run all tests :

	$ rake tickle # This will use 3 processes by default

To run all tests using 2 processes :

	$ rake tickle[2]

To only run unit tests :

	$ rake tickle:units

To run unit tests in 4 parallel processes :
	
	$ rake tickle:units[4]
	
tickle:functionals and tickle:integration should work as expected.

Tuning
======

For best results, use tickle with Ruby Enterprise Edition and Twitter's GC settings :

- http://www.rubyenterpriseedition.com/
- http://blog.evanweaver.com/articles/2009/04/09/ruby-gc-tuning/

Database Setup
==============

If you're NOT USING transactional fixtures, you'll need to create 'N' new databases. Where 'N' is the maximum number of parallel processes you want to run.

Assuming you want to run 2 proccesses, you'll need to provide test_1 and test_2 config settings in database.yml :

test_1:
  adapter: mysql
  encoding: utf8
  database: myapp_test1
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

test_2:
  adapter: mysql
  encoding: utf8
  database: myapp_test2
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

Copyright (c) 2009 Pratik Naik, released under the MIT license
Something went wrong with that request. Please try again.