Spork DRb
Basics
Running test suits sometimes involves overheads, because every time a test suit is executed, the whole environment (for example, the entire Rails environment for Rails applications) should be reloaded. You can avoid it using the Spork DRb server, which loads the environment only once.
With the Spork DRb server running in the background, you have a choice to execute any testing script using the Spork DRb server, or locally.
Prerequisites
To launch Spork DRb server
From the main menu, choose
.In the Spork DRb Launch Options dialog, select the desired testing framework, and click Run.
If you are going to use spork for the first time in your project, launch the action with the Perform bootstrap checkbox selected. Thus Spork will patch the testing scripts.
The Spork DRb server starts in a separate tab of the Run tool window.
To run a test script using the Spork DRb server
Make sure that Spork DRb server is launched using RubyMine and is running in the background.
Run a test script, or one of its examples. Note that the option Spork DRb is automatically selected in the corresponding run configuration. If you want to run this test locally, you have to select the option None.
To debug tests, when using Spork DRb, follow these general steps
Make sure the breakpoints are set in the test script you want to debug.
On the main toolbar, click the run/debug configuration selector, and choose
.In the Run/debug Configurations dialog, create a run/debug configuration for Spork DRb server.
Launch Spork DRb in the debug mode. To do that, with the Spork DRb run/debug configuration selected, click , or press Shift+F9.
With the Spork DRb server running in the debug mode, run the desired test script.
Managing Spork DRb server
Refer to the description of the Run tool window. In particular, use the following buttons:
- stop the Spork DRb server without closing its tab in the Run tool window.
- close the Spork DRb server tab.
- rerun Spork DRb server in the same tab.
Tips and tricks
RubyMine creates a temporary run/debug configuration for Spork DRb server. Later you can change this run/debug configuration as required, save it as permanent, and use it to launch the server.
If you are using TeamCity, avoid overhead by adding the following statement into
Spork.preload
:require 'teamcity/spec/runner/formatter/teamcity/formatter'Spork DRb server doesn't work with Ruby 2.0.
If both Zeus and Spork DRb servers are running simultaneously, it is Zeus that gets priority.
Spork DRb run/debug configuration
You can specify the following settings for newly created or existing Spork DRb run configuration on the Configuration tab:
- Spork script
When the run/debug configuration is created by the
server command, this field points to thespork
script under the current Ruby interpreter. If you are creating the configuration from scratch, specify the fully qualified path to script.- Test framework
Select the desired testing framework.
- Additional arguments
Type additional parameters to be passed to the
spork
script.- Working directory
Specify the working directory used by the running script.
- Environment variables
Specify the list of environment variables as the name-value pairs, separated with semi-colons. Alternatively, click the ellipsis button to create variables and specify their values in the Environment Variables dialog.
- Ruby arguments
Specify the command-line arguments to be passed to the Ruby interpreter.
- Ruby SDK
Specify the Ruby interpreter used to run a server. You can choose the project default Ruby SDK, or select a different one from the list of configured Ruby SDKs.