Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

WindowsSupport

Paul O'Keeffe edited this page · 12 revisions

Running Spork on Windows machines is supported by creating new processes in advance instead of forking, which isn’t supported in Windows.

It currently requires the installation of the win32-process gem, which is used to create a new process for each slave the magazine run strategy creates upon startup. These slaves are stored in a distributed Ruby (DRb) Rinda tuplespace. The slave processes (two for now) are created when the run strategy is started. When RSpec or Cucumber runs a test, a slave is taken from the tuplespace, is used to run the tests, and the process is killed. A replacement process is created and added to the tuplespace. This allows tests to be run without interruption about every 10 seconds.

This will not currently work with JRuby, since the win32-process gem is a native gem. Another way of starting a new process may allow JRuby to join the party.

Installation

  • gem install spork

This should install the win32-process gem automatically for you. If not, then gem install win32-process.

Use

To Run

  1. Set up your project to use Spork by bootstrapping and editing helper files (see directions)
  2. Start up Spork server in a console window: spork rspec (Rspec) or spork cuc (Cucumber)
  3. Run tests in another console window: spec spec --drb (Rspec) or cucumber (Cucumber)
  • Note: Do not include the --drb option in the spec.opts file for Rspec, just add --drb to the command line.
    • (A bug causes an unwanted test to be run while a slave is being built).

NetBeans

  • Add the --drb option to the spec/spec.opts.netbeans file (I copied it from the spec/spec.opts file).
  • Do not include --drb in the spec/spec.opts file.

When done

  • Close the Spork console by using CTRL+BREAK. This should also kill the slave processes.
    • you may want to check for stray ruby processes.
Something went wrong with that request. Please try again.