chad / tickle forked from lifo/tickle

Run your tests in parallel processes

This URL has Read+Write access

chad (author)
Thu Nov 05 06:25:20 -0800 2009
commit  a0264d68cf13f6a0b3d22cbffc59ce6c77c955f9
tree    eb96aebd205cba2e32c72a3a7d4475eeb6c0140b
parent  411257a659769a7d45cdcbd6cdc589e4351bdafb
tickle /
name age message
file MIT-LICENSE Tue Jul 14 17:08:42 -0700 2009 Initial commit [lifo]
file README Mon Sep 21 05:16:09 -0700 2009 Improve README [lifo]
directory lib/ Thu Nov 05 06:25:20 -0800 2009 ruby 1.9 fix [chad]
directory tasks/ Mon Sep 21 05:09:59 -0700 2009 3 processes by default now [lifo]
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