IntelliJ IDEA 2022.3 Help

Testing in Maven

In the Maven project, you can create and run tests the same way you do in any other project using the default IntelliJ IDEA test runner.

You can also pass the Maven Surefire plugin parameters when you run JUnit or TestNg tests and the Maven Failsafe plugin parameters for running integration tests. The Maven surefire plugin is declared in the super POM by default, but you can adjust its settings in your project's POM.

Run tests

  1. Open the Maven tool window.

  2. Under the Lifecycle node select test.

    the Maven tool window

    Note that goals specified in the Maven surefire plugin will be activated at this phase and all tests in a project or in a module will be run.

Run a single test

If you want to run just a single test instead of all the tests declared in your project, create a Maven run configuration for a single test with the Maven -Dtest=TestName test command. The run configuration will be saved under the Run Configurations node.

  1. In the Maven tool window, under the Lifecycle node, right-click the test goal.

  2. From the context menu, select Create 'name of the module/project and name of a goal'.

  3. In the dialog that opens, specify a working directory that contains test you want to run and in the Command line field, specify a phase (specified automatically) and the -Dtest=TestName test command.

    Run/Debug Configuration

    Click OK.

  4. Open the Run Configurations node and double-click your configuration to run.

    the saved Run configuration

    Maven runs the test and displays the result in the Run tool window.

Skip tests

You can skip running tests, for example, when you want to just compile your project and don't want to wait for Maven to complete the tests' execution.

  1. Click the the Maven settings icon in the Maven tool window to open Maven settings and select Runner from the options on the left.

  2. On the Runner page, select Skip tests and click OK.

    the Maven settings | Runner

    IntelliJ IDEA de-activates the test goal under the Lifecycle node.

    the Maven tool window

    The appropriate message notifying that tests are skipped is displayed in the Run tool window when you execute other goals.

    the Run tool window

Debug tests with Maven

You can debug tests executed by Maven. For example, if you want to debug tests running in a pipeline then you can fork the process and debug it remotely using Maven commands.

For more detailed information, you can check the Maven documentation and the remote debugging process.

Debug tests

  1. In your Maven project, open the Run/Debug Configurations dialog.

  2. Add a new Remote JVM Debug configuration.

  3. In the options on the right, add a name, change the port if needed (the default is 8000), select the module classpath and click OK.

    Debug configurations
  4. Set the break points where needed.

  5. Press Ctrl to open the Run Anything window. Enter the Maven command for forked tests. The default 5005 port is used for the process. However, you can change the port and run it on the local host with the following command:

    mvn -Dmaven.surefire.debug="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000" test

    Local terminal

    You can check what other Maven commands can be used. For example, what to use if you don't want to fork the debugging process.

    You can check the running process in the Run tool window.

    Run tool window
  6. Start the debugging process, by clicking the Debug button against the created debug configuration on the main toolbar.

    Check the result in the Debug tool window.

    the Debug console tab

    As the code executes, it will pause at the breakpoints you have set in your code.

    the Debugger tab
Last modified: 01 December 2022