IntelliJ IDEA 2018.2 Help

Run/Debug Configuration: JUnit

JUnit run/debug configurations define how unit tests that are based on the JUnit testing framework should be run.

The dialog box consists of the following tabs:

Configuration tab

ItemDescription
Test kind From this drop-down list, select the scope for your tests and fill in the fields depending on your selection.
All in package Select this option to run all unit tests in the specified package. Fill in the following fields:
Package Specify package name
Search for tests Select where in your project IntelliJ IDEA shall look for test classes related to the current package:
  • In whole project: IntelliJ IDEA will look for test classes in all project modules
  • In single module: IntelliJ IDEA will look for test classes only in the module selected in the Use classpath of module field
  • Across multiple dependencies: IntelliJ IDEA will look for test classes only in the module selected in the Use classpath of module field, and in the modules that depend on it
All in directory Select this option to run all unit tests in the specified directory. Fill in the following field:
Directory Specify the directory where you want to run the tests. It will act as the root directory for all relative input and output paths.
Pattern Select this option to run a set of test classes. This set may include classes located in the same or different directories, packages or modules. Fill in the following fields:
Pattern Specify the required classes. Each class in this field must be represented by its fully qualified name. Class names must be separated with ||. You can type class names manually, or click new on the right (or press Shift+Enter) and search for classes you want to add in the dialog that opens.

You can also create a suite test, i.e. a bundle of several test classes that will be run together. To create a suite test class, click icons general expandComponent svg on the right and type the test classes you want to be run as a suite in the Configure suit tests dialog that opens. As a result, a new class will be created with the @Suite annotation.

Method Specify the method to be launched (passed to the JRE). Type method name, or click browseButton and select the desired method in the dialog that opens.
Search for tests Select where in your project IntelliJ IDEA shall look for test classes related to the current package:
  • In whole project: IntelliJ IDEA will look for test classes in all project modules
  • In single module: IntelliJ IDEA will look for test classes only in the module selected in the Use classpath of module field
  • Across multiple dependencies: IntelliJ IDEA will look for test classes only in the module selected in the Use classpath of module field, and in the modules that depend on it
Class Select this option to run all tests in a class.

Fill in the following field:

Class Specify the fully qualified name of the class to be launched (passed to the JRE). Type the class name or click browseButton and select the desired class in the dialog that opens.
Method Select this option to run an individual test method.

Fill in the following fields:

Class Specify the fully qualified name of the class to be launched (passed to the JRE). Type the class name or click browseButton and select the desired class in the dialog that opens.
Method Specify the method to be launched (passed to the JRE). Type method name, or click browseButton and select the desired method in the dialog that opens.
Category Select this option if you only want to run test classes and test methods that are annotated either with the category given with the @IncludeCategory annotation, or a subtype of this category. Learn more about JUnit categories.

Fill in the following fields:

Category Specify the desired category. Type category name, or click browseButton and select the desired category in the dialog that opens.
Search for tests Select where in your project IntelliJ IDEA shall look for test classes related to the current package:
  • In whole project: IntelliJ IDEA will look for test classes in all project modules
  • In single module: IntelliJ IDEA will look for test classes only in the module selected in the Use classpath of module field
  • Across multiple dependencies: IntelliJ IDEA will look for test classes only in the module selected in the Use classpath of module field, and in the modules that depend on it
UniqueId Select this option to include tests and containers with a specific ID in the testing scope.
Tags
(JUnit 5)
Select this option to include classes and methods tagged with the @Tag annotation in the testing scope.
Fork mode This option controls how many Java VMs will be created if you want to fork some tests. Select method or class to create a separate virtual machine for each method or class respectively.

The available options in this drop-down list depend on the Test kind setting.

Repeat If you want to repeatedly run a test, select the threshold from this drop-down list. You can select to run your test once, n times (in this case specify the number of times in the field on the right), until the test fails, or until it is stopped.
VM options If necessary, specify the string to be passed to the VM. This string may contain the options such as -mx, -verbose, etc.

When specifying JVM options, follow these rules:

  • Use spaces to separate individual options, for example, -client -ea -Xmx1024m.
  • If an option includes spaces, enclose the spaces or the argument that contains spaces in double quotes, for example, some" "arg or "some arg".
  • If an option includes double quotes (as part of the argument), escape the double quotes using backslashes, for example, -Dmy.prop=\"quoted_value\".
  • You can pass environment variable values to custom Java properties. For example, if you define a variable MY_ENV_VAR, you can pass it to the foo property as follows:
    -Dfoo=${MY_ENV_VAR}

If there is not enough space, you can click icons general expandComponent svg and enter the string in the dialog that opens.

The -classpath option specified in this field overrides the classpath of the module.

Program arguments In this field, type a list of arguments to be passed to the program in the format you would use in the command line. If necessary, click the icons general expandComponent svg button and type the required arguments in the dialog that opens.

Use the same rules as for specifying the VM options.

Working directory Specify the directory that will act as the current directory when running the test. It will act as the root directory for all relative input and output paths. By default, the directory where the project file resides, is used as a working directory.

Type directory name, or click browseButton and select the desired directory in the dialog that opens. You can also click icon switch directories to switch between directories.

Environment variables Click browseButton to open the Environment Variables dialog box where you can create variables and specify their values.
Use classpath of module Select the module whose classpath should be used to run the tests.
JRE Specify the JRE to be used. Select the JRE from the list, or click browseButton and select the installation folder of the required JRE in the dialog that opens.
Shorten command line Select a method that will be used to shorten the command line if the classpath gets too long or you have many VM arguments that exceed your OS command line length limitation:
  • none: IntelliJ IDEA will not shorten a long classpath. If the command line exceeds the OS limitation, IntelliJ IDEA will be unable to run your application and will display a message suggesting you to specify the shortening method.
  • JAR manifest: IntelliJ IDEA will pass a long classpath via a temporary classpath.jar. The original classpath is defined in the manifest file as a class-path attribute in classpath.jar. Note that you will be able to preview the full command line if it was shortened using this method, not just the classpath of the temporary classpath.jar.
  • classpath.file: IntelliJ IDEA will write a long classpath into a text file.
  • User-local default: this legacy option is set automatically for projects created before IntelliJ IDEA version 2017.3. IntelliJ IDEA will configure this setting depending on the properties set in the ide/workspace.xml and idea.config.path/options/options.xml files.

Code Coverage tab

Use this tab to configure code coverage monitoring options.

ItemDescription
Choose coverage runner

Select the desired code coverage runner.

By default, IntelliJ IDEA uses its own coverage engine with the Sampling mode. You can also choose JaCoCo or Emma for calculating coverage.

SamplingSelect this option to measure code coverage with minimal slow-down.
TracingSelect this option to collect accurate branch coverage. This mode is available for the IntelliJ IDEA code coverage runner only.
Track per test coverage

Select this check box to detect lines covered by one test and all tests covering line. If this check box is selected, junit2x becomes available on the toolbar of the coverage statistic pop-up window.

Refer to the section Viewing Code Coverage Results.

Packages and classes to record code coverage dataClick icons toolbarDecorator addClass and icons toolbarDecorator addPackage buttons to specify classes and packages to be measured. You can also remove classes and packages from the list by selecting them in the list and clicking the icons general remove svg button.
Enable coverage in test folders.If this check box is selected, the folders marked as test root_Test.png are included in the code coverage analysis.

Logs tab

Use this tab to specify which log files generated while running or debugging should be displayed in the console, that is, on the dedicated tabs of the Run or Debug tool window.

ItemDescription
Is ActiveSelect check boxes in this column to have the log entries displayed in the corresponding tabs in the Run tool window or Debug tool window.
Log File Entry

The read-only fields in this column list the log files to show. The list can contain:

  • Full paths to specific files.
  • Ant patterns that define the range of files to be displayed.
  • Aliases to substitute for full paths or patterns. These aliases are also displayed in the headers of the tabs where the corresponding log files are shown.

    If a log entry pattern defines more than one file, the tab header shows the name of the file instead of the log entry alias.

Skip ContentSelect this check box to have the previous content of the selected log skipped.
Save console output to fileSelect this check box to save the console output to the specified location. Type the path manually, or click the browse button and point to the desired location in the dialog that opens.
Show console when a message is printed to standard output streamSelect this check box to activate the output console and bring it forward if an associated process writes to Standard.out.
Show console when a message is printed to standard error streamSelect this check box to activate the output console and bring it forward if an associated process writes to Standard.err.
icons general add svgClick this button to open the Edit Log Files Aliases dialog where you can select a new log entry and specify an alias for it.
icons actions edit svgClick this button to edit the properties of the selected log file entry in the Edit Log Files Aliases dialog.
icons general remove svgClick this button to remove the selected log entry from the list.

Common options

When you edit a run configuration (but not a run configuration template), you can specify the following options for it:

ItemDescription
Name In this text box, specify the name for the run/debug configuration. The name will help you identify the created configuration when you choose to edit it later, or when you invoke it, for example. from the Run popup (Shift+Alt+F10).
Share Select this check box to make the run/debug configuration available to other team members.

If the directory-based project format is used, the settings for a run/debug configuration are stored in a separate .xml file in the .idea\runConfigurations folder if the run/debug configuration is shared, or in the .idea\workspace.xml file otherwise.

If the file-based format is used, the settings are stored in the .ipr file for shared configurations, or in the .iws file otherwise.

Toolbar

The tree view of run/debug configurations has a toolbar that helps you manage configurations available in your project as well as adjust default configurations templates.

ItemShortcutDescription
icons general add svgAlt+InsertCreate a run/debug configuration.
icons general remove svgAlt+Delete Delete the selected run/debug configuration. Note that you cannot delete default configurations.
icons actions copy svg Ctrl+D Create a copy of the selected run/debug configuration. Note that you create copies of default configurations.
icons general settings svg Edit Templates View and edit the default template for the selected run/debug configuration. The templates are used for newly created configurations.
icons actions moveUp svg/icons actions moveDown svgAlt+Up/Alt+Down

Move the selected run/debug configuration up and down in the list.

The order of configurations in the list defines the order, in which the configurations appear when you choose a run/debug configuration.

Default templates of run/debug configurations are always sorted alphabetically.

folder Move into new folder / Create new folder

You can group run/debug configurations by placing them into folders.

To create a folder, select the configurations within a category to be grouped, click folder, and specify the name for the folder. If only a category is in focus, an empty folder is created.

Then, to move a configuration into a folder, between the folders or out of a folder, use drag-and-drop or icons actions moveUp svg and icons actions moveDown svg buttons.

To remove grouping, select a folder and click icons general remove svg.

icons objectBrowser sorted svg Sort configurations Click this button to sort configurations in alphabetical order.

Templates

When you select Templates in the tree view of the run configurations, you can adjust some settings that apply for all run debug configurations.

ItemDescription
Configurations available in Run Dashboard

In this section you can create a list of run configurations available in the Run Dashboard — tool window that helps you execute and manage multiple run/debug configurations.

Note that the dashboard will only display those configuration types for which you have created one ore more configurations.
So if you add a configuration type for which no configurations exist in the project, this type will not be displayed on the dashboard until you create a configuration of this type.

Confirm rerun with process terminationThe behavior of this checkbox depends on whether the Single instance only checkbox is selected for a particular run/debug configuration.
  • If this checkbox is selected, then, in case of a single instance, launching a new process (for example, by clicking run on the main toolbar) while another process is still running, results in showing a dialog box prompting to terminate the current process before launching a new one.
  • If this checkbox is not selected (or in case of multiple instances), IntelliJ IDEA starts the new process silently.
Temporary configurations limit Specify here the maximum number of temporary configurations to be stored and shown in the Select Run/Debug Configuration drop-down list.

Before Launch options

In this area you can specify tasks that should be carried out before starting the selected run/debug configuration. The specified tasks are performed in the order they appear in the list.

ItemShortcutDescription
icons general add svgAlt+Insert Click this icon to add one of the following available tasks:
  • Run External tool — select this option to run an application which is external to IntelliJ IDEA. In the dialog that opens, select the application or applications that should be run. If the necessary application is not defined in IntelliJ IDEA yet, add its definition. For more information, see Configuring Third-Party Tools and External Tools.
  • Make — select this option to have the project or module compiled. The Make Module command will be carried out if a particular module is specified in the run/debug configuration, and the Make Project command otherwise.

    If an error occurs during the compilation, IntelliJ IDEA won't attempt to start the run/debug configuration.

  • Make, no error check — the same as the Make option but IntelliJ IDEA will try to start the run/debug configuration irrespective of the compilation result.
  • Build Artifacts — select this option to build an artifact or artifacts. In the dialog that opens, select the artifact or artifacts that should be built.
  • Run Another Configuration — select this option to execute another run/debug configuration. In the dialog that opens, select the configuration to be run.
  • Run Ant target — select this option to run an Ant target. In the dialog that opens, select the target to be run.
  • Run Grunt task — select this option to run a Grunt task. In the Grunt task dialog box that opens, specify the Gruntfile.js where the required task is defined, select the task to execute, and specify the arguments to pass to the Grunt tool.

    Specify the location of the Node.js interpreter, the parameters to pass to it, and the path to the grunt-cli package.

  • Run Gulp task — select this option to run a Gulp task. In the Gulp task dialog box that opens, specify the Gulpfile.js where the required task is defined, select the task to execute, and specify the arguments to pass to the Gulp tool.

    Specify the location of the Node.js interpreter, the parameters to pass to it, and the path to the gulp package.

  • Run Maven Goal — select this option to run a Maven goal. In the dialog that opens, select the goal to be run.
  • Run npm Script — select this option to execute an npm script. In the NPM Script dialog box that opens, specify the npm run/debug configuration settings.
  • Compile TypeScript — elect this option to run the built-in TypeScript compiler and thus make sure that all the changes you made to your TypeScript code are reflected in the generated JavaScript files. In the TypeScript Compile Settings dialog that opens, select or clear the Check errors checkbox to configure the behaviour of the compiler in case any errors are detected:
    • If the Check errors checkbox is selected, the compiler will show all the errors and the run configuration will not start.
    • If the Check errors checkbox is cleared, the compiler will show all the detected errors but the run configuration still will be launched.
  • Generate CoffeeScript Source Maps — select this option to generate the source maps for your CoffeeScript sources. In the dialog that opens, specify where your CoffeeScript source files are located.
  • Run Remote External tool — adds a remote SSH external tool.
  • Run Rake task — add a Rake task to be executed prior to running or debugging. To choose a Rake task, click the browse button browseButton, and select the desired task from the list of available tasks.

    Note that code completion is available here.

    runConfigRakeTask
  • Run JRuby compiler: choose this option to execute JRuby compiler with the specified target path, compiler process heap size, and command line parameters (if any).
icons general remove svgAlt+Delete Click this icon to remove the selected task from the list.
icons actions edit svg Enter Click this icon to edit the selected task. Make the necessary changes in the dialog that opens.
icons actions moveUp svg/icons actions moveDown svgAlt+Up/Alt+DownClick these icons to move the selected task one line up or down in the list. (The tasks are performed in the order that they appear in the list.)
Show this pageSelect this checkbox to show the run/debug configuration settings prior to actually starting the run/debug configuration.
Activate tool window

If this checkbox is selected, which it is by default, the Run or the Debug tool window opens when you start the run/debug configuration.

Otherwise, the tool window isn't shown. However, when the configuration is running, you can open the corresponding tool window for it yourself by pressing Alt+4 or Alt+5.

Last modified: 18 June 2018

See Also

Reference:

Language and Framework-Specific Guidelines: