Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Distributed testing framework for RSpec

branch: master

Cut version 2.1.0

Change-Id: Ib0fb391b5393dbbc52da50ab7b3843bcfd555de4
Reviewed-by: Shane da Silva <>
Tested-by: Shane da Silva <>
latest commit 79e4f68e9d
Shane da Silva sds authored April 16, 2014
Octocat-spinner-32 bin Return non-zero exit status on test failure December 14, 2011
Octocat-spinner-32 lib Cut version 2.1.0 April 16, 2014
Octocat-spinner-32 spec Rename prepare_script option to prepare_command February 10, 2014
Octocat-spinner-32 support Remove support for RSpec 1 February 10, 2014
Octocat-spinner-32 .gitignore Remove Gemfile.lock January 15, 2014
Octocat-spinner-32 Cut version 2.1.0 April 16, 2014
Octocat-spinner-32 Gemfile Move rubygems into gemspec, classify on dev/not dev. August 02, 2011
Octocat-spinner-32 LICENSE Add MIT LICENSE file July 14, 2011
Octocat-spinner-32 Add gem version badge to README November 12, 2013
Octocat-spinner-32 buffet.gemspec Upgrade RSpec 2.6.0 -> 2.14.1 January 15, 2014
Octocat-spinner-32 buffet.sample.yml Add ability to exclude sets of specs April 16, 2014
Octocat-spinner-32 buffet.yml Remove support for RSpec 1 February 10, 2014


Gem Version

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

Something went wrong with that request. Please try again.