JSTestDriver
RubyMine supports integration with the JSTestDriver test framework.
Before you start
Install and enable the JSTestDriver plugin on the Settings | Plugins page, tab Marketplace, as described in Installing plugins from JetBrains Marketplace.
Through this plugin, RubyMine provides the JSTestDriver server and the assertion framework. During the test creation, the plugin detects the unit testing framework and suggests the Add <test framework> support intention action.
Configuring a testing framework in a project
Download the framework of your choice and configure it as a RubyMine JavaScript library.
Do one of the following:
Enable the framework support on-the-fly during test creation using the Add <test framework> support intention action.
To use Jasmine, add
jasmine-jstd-adapter
to the configuration file.Open jsTestDriver.conf and type the following code in it:
load: lib/jasmine/jasmine.js lib/jasmine-jstd-adapter/JasmineAdapter.js
Creating a test runner configuration file manually
A test runner configuration file defines the test and production files to load the loading order. RubyMine treats any file with the extension .jstd or .conf as a test runner configuration file.
To create a configuration file
In the Project tree, select the parent folder of the production and test folders, and choose New | File on the context menu.
In the New File dialog box, that opens, type the name of the configuration file with the extension .jstd or .conf.
Open the new file in the editor and specify the full path to the current folder and the paths to the files to load relative to it. Use wildcards in file name patterns.
Complete the configuration file using YAML, see description of test runner configuration files.
Running tests
With RubyMine, you can quickly run a single JSTestDriver test right from the editor or create a run/debug configuration to execute some or all of your tests.
To run a single test from the editor
Click
or
in the left gutter and choose Run <test_name> from the list.
You can also see whether a test has passed or failed right in the editor, thanks to the test status icons
and
in the gutter.
To create a JSTestDriver run configuration
Open the Run/Debug Configuration dialog ( on the main menu), click
in the left-hand pane, and select JSTestDriver from the list. The Run/Debug Configuration: JSTestDriver dialog opens.
Specify the tests to run, the path to the configuration file, and the activities to perform before test execution.
To start the WebStorm default JSTestDriver test server
Make sure you have at least one configuration file in your project.
Open the JSTestDriver Server tool window ( ), and click
on the toolbar.
To stop the server when you are through with unit testing
Click
on the toolbar.
To capture a browser
Start the JSTestDriver Server if it is not running yet and then switch to the JSTestDriver Server tool window.
To start a local browser with the Remote Console of the JSTestDriver, do one of the following:
Click the icon that indicates the browser of your choice.
If the browser is already opened, copy the contents of the Capture a browser using the URL read-only field and paste the URL in the address bar.
In either case, the icon that indicates the chosen browser becomes active.
Switch to the JSTestDriver Server tool window and click the icon that indicates the browser you just opened. RubyMine displays a message informing you that it is ready for executing tests.
To run tests via a run configuration
Select the JSTestDriver run/debug configuration from the list of configurations and click
in the list or on the toolbar.
Monitor test execution and analyze test results in the Test Runner tab of the Run tool window, see Explore test results for details.
Navigation
With RubyMine, you can jump between a file and the related test file or from a test result in the Test Runner Tab to the test.
To jump between a test and its subject or vice versa, open the file in the editor and select
or from the context menu, or just press Control+Shift+T.To jump from a test result to the test definition, click the test name in the Test Runner tab twice, or select from the context menu, or just press F4. The test file opens in the editor with the cursor placed at the test definition.
Debugging tests
A debugging session for JSTestDriver tests is started only through a run/debug configuration.
To start debugging tests
Create a JSTestDriver run/debug configuration as described above.
Select the JSTestDriver run/debug configuration from the list of configurations and click
in the list or on the toolbar.
In the Debug tool window that opens, proceed as usual: step through the tests, stop and resume test execution, examine the test when suspended, run JavaScript code snippets in the Console, and so on.
Monitoring code coverage
With RubyMine, you can also monitor how much of your code is covered with Karma tests. RubyMine displays this statistics in a dedicated Coverage tool window and marks covered and uncovered lines visually in the editor and in the Project tool window.
To launch tests with coverage
Create a JSTestDriver run/debug configuration as described above.
Start the JSTestDriver server and capture a browser to run the tests in.
Select the JSTestDriver run/debug configuration from the list of configurations and click
in the list or on the toolbar.
Monitor the code coverage in the Coverage tool window.
To exclude files from coverage analysis
Create a JSTestDriver run/debug configuration as described above.
In the Coverage tab, specify the paths to the files to exclude.