-
Repository: github.com/timcharper/spork
-
Changes: github.com/timcharper/spork/blob/master/History.txt
-
Mailing list: groups.google.com/group/sporkgem
Spork is Tim Harper’s implementation of test server (similar to the script/spec_server provided by rspec-rails), except rather than using the Rails constant unloading to reload your files, it forks a copy of the server each time you run your tests. The result? Spork runs more solid: it doesn’t get corrupted over time, and it properly handles modules and any voo-doo meta programming you may have put in your app.
Spork runs on POSIX systems using fork. It also runs on windows by pre-populating a pool of ready processes (referred to here as the “magazine” strategy).
-
Rspec
-
Cucumber
-
Test::Unit (via ‘gem install spork-testunit’)
And more to come! Vote for your favorite at github.com/timcharper/spork/issues
Actually, Spork ~can~ work with any application framework. But, it ships with hooks and helpers to help make the experience much more “out of the box”
-
Rails
More can be added! Vote for your favorite at github.com/timcharper/spork/issues
[sudo] gem install spork
alternatively:
git clone git://github.com/timcharper/spork.git cd spork gem build spork.gemspec sudo gem install spork.gemspec
From a terminal, change to your project directory.
Then, bootstrap your spec/spec_helper.rb file.
spork --bootstrap
Next, edit spec/spec_helper.rb and follow the instructions that were put at the top.
Finally, run spork. A spec DRb server will be running!
spork
Initially, you may find that a few files don’t reload automatically. This is because they are being loaded during Spork startup. To identify which project files are being pre-loaded, and why, run:
spork --diagnose (or spork -d, for short)
It will output a lot of stuff. At the top you’ll find a summary of all project files loaded. Down below, the stack trace for each file (how it got loaded). Spork hooks into Rails and does some magic (TM) to prevent ApplicationController observers, etc from pre-loading. Similar hooks for other ruby frameworks may come as support demands.
To get the TextMate RSpec bundle to use spork, go to config->advanced->shell variables, and add:
TM_RSPEC_OPTS=--drb.
To run from the command line, use:
spec --drb spec/lib/my_spec.rb
Or, you could add the following flag to your spec.opts
file.
--drb
Cucumber has DRb support (see wiki.github.com/aslakhellesoy/cucumber/spork-and-drb )
cucumber --drb
Use this as a guideline when “Sporking” your features/support/env.rb file
http://gist.github.com/123370
See wiki.github.com/timcharper/spork/troubleshooting
-
Ben Mabey - help with documentation, testing, suggestions, patches, and bringing Cucumber support.
-
David Chelimsky - for the fine RSpec testing framework, and the original rspec-rails spec_server implementation, which Spork has built upon.
-
Lead Media Partners - just for being an awesome place to work.
Spork © 2009 Tim Harper, released under the MIT license