Maven Skipping Tests

In this quick article, we will look into different ways to skip tests in maven applications.

Sometimes we need to disable JUnit test cases written in maven projects. When we build a maven package by default maven will execute the JUnit test cases.

Skipping Tests

If you are using maven-surefire-plugin in your pom.xml then it's easy to skip running the tests for a particular project, set the skipTests property to true.
<project>
  [...]
  
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>
  [...]

</project>

From Command Line

You can also skip the tests via the command line by executing the following command:
mvn install -DskipTests
If you absolutely must, you can also use the maven.test.skip property to skip compiling the tests. maven.test.skip is honored by Surefire, Failsafe and the Compiler Plugin.
mvn install -Dmaven.test.skip=true

Skipping by default

If you want to skip tests by default but want the ability to re-enable tests from the command line, you need to go via a properties section in the pom:
<project>
  [...]
  
    <properties>
        <skipTests>true</skipTests>
    </properties>
  [...]
  
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <skipTests>${skipTests}</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>
  [...]

</project>
This will allow you to run with tests disabled by default and to run them with this command:
mvn install -DskipTests=false
The same can be done with the "skip" parameter and other booleans on the plugin.
Learn and master in maven at Apache maven tutorial


Comments