Buffet is a test distribution framework for Ruby applications. It distributes your tests across multiple worker machines and runs them in parallel, which significantly speeds up the testing cycle.
gem install buffet
Run buffet
from the command line at the top level of your application.
Buffet expects to find a buffet.yml
file in the same directory which tells it
about the project being tested and what machines it should run on. If you want
to specify a different configuration file, use the --config
switch.
Buffet also allows you to specify a name for the project using the --project
switch. This switch is intended to allow multiple runs of the same project
from the same master user, since the project name is used as a namespace to
prevent resource contention.
If you have a database or other set-up that needs to be prepared before every
test you can create a bin/before-buffet-run
script in your application's
folder which makes the necessary preparations (you can customize which file
to use by specifying the prepare_script
setting in buffet.yml
).
Note that bin/before-buffet-run
is executed separately from the actual test
running process, so e.g. environment variables will not be preserved. To
customize the test running environment, you can use the worker_command
setting. To set up a specific RVM environment, for example, you could use:
worker_command: rvm use 1.9.3 && .buffet/buffet-worker