public
Description: Run your tests in parallel processes
Homepage: http://m.onkey.org
Clone URL: git://github.com/lifo/tickle.git
tickle /
name age message
file MIT-LICENSE Tue Jul 14 17:08:42 -0700 2009 Initial commit [lifo]
file README Tue Nov 17 14:25:05 -0800 2009 Fix the link to parallel_specs [lifo]
directory lib/ Tue Nov 17 14:21:57 -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/grosser/parallel_specs 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