JavScript unit tests are run in a browser against a test server which actually handles the testing process.
This server allows you to capture a browser to run tests in, loads the test targets to the captured browser, controls the testing process, and exchanges data between the browser and WebStorm, so you can view test results without leaving the IDE.
The test server does not necessarily have to be on your machine, it can be launched right from WebStorm through the Cucumber.js test runner.
Karma executes unit tests according to a karma.conf.js configuration file which is generated semi-automatically in the interactive mode.
On this page:
- Generating a Karma configuration file
- Creating a Karma run configuration
- Launching unit tests
Download and install Node.js. The framework is required for two reasons:
- The transpiledLanguage toolType is started through Node.js.
- NPM, which is a part of the framework, is also the easiest way to download the transpiledLanguage toolType.
For details on using Node.js in WebStorm, see the section Node.js
If you are going to use the command line mode, make sure the following paths are added to the PATH variable:
- The path to the parent folder of the Node.js executable file.
- The path to the npm folder.
This enables you to launch the transpiledLanguage toolType and npm from any folder.
- Make sure the Karma test runner is installed as described in Preparing to Use Karma Test Runner.
- Make sure the Node.js plugin is enabled. The plugin is bundled with WebStorm and activated by default. If it is not, enable it as described in Enabling and Disabling Plugins.
- Make sure the Karma plugin is enabled. The plugin is bundled with WebStorm and activated by default. If it is not, enable the plugin.
Karma executes unit tests according to a karma.conf.js configuration file which is generated semi-automatically in the interactive mode. The instruction below ensures successful creation of a consistent configuration file karma.conf.js which in its turn ensures successful execution of the tests in your project. For more details, see http://karma-runner.github.io/0.10/config/configuration-file.html.
- In the command line mode, switch to your project directory.
Type the following command at the command line prompt:
If Karma does not start, check the installation: the parent folder or the Karma executable file should be specified in the PATH variable.
Answer the questions to specify the following basic settings:
- The testing framework to use.
- The browsers to be captured automatically.
- The patterns that define the location of test files to be involved in testing or excluded from it, for example, src/*.js and test/*.js. For more details, see http://karma-runner.github.io/0.10/config/files.html.
Open the Run/Debug Configuration dialog box by doing one of the following:
- On the main menu, choose .
- Press RunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfigurationRunConfiguration and choose Edit Configuration on the context menu.
- Open the test file in the editor, and then choose Create <file name> on the context menu.
- Select the test file in the Project tool window, and then choose Create <file name> on the context menu of the selection.
- Click the Add button on the toolbar and select the Karma configuration type.
- In the dialog box that opens, specify the location of the Node.js and Karma executable files and the path to the karma.conf.js configuration file.
- Apply the changes and close the dialog box.
To launch the tests according to a run configuration, select the Karma run/debug configuration from the list on the main toolbar.
Then click the Run button to the right of the list.
- The Karma test server starts automatically without any steps from your side. View and analyze messages from the test server in the Karma Server tab of the Run tool window.
- Monitor test execution in the Test Runner tab of the Run tool window as described in Monitoring and Managing Tests.