How to permanently exclude one test class in a Maven build

maven exclude test class command line
maven skip tests
maven-surefire-plugin not running cucumber tests
mvn no unit tests
maven-surefire-plugin configuration
maven exclude a test
maven skip cucumber tests
maven run single test

I'm trying to exclude a single test from my maven build (I don't want the test to be compiled or executed). The following doesn't work:

<project ...>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/MyTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

What is the correct way to achieve my goal? I know that I can use the command-line option -Dmaven.test.skip=true, but I would like this to be part of the pom.xml.


Skip the test

From the docs, if you want to skip a test, you can use:

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <excludes>
            <exclude>**/MyTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

See the diference, in your example, you use <artifactId>maven-compiler-plugin</artifactId>, and the docs say that you shoul use <artifactId>maven-surefire-plugin</artifactId> plugin instead.

And, if you want to disable all test, you can use:

    <configuration>
      <skipTests>true</skipTests>
    </configuration>

Also, if you are using JUnit, you can use @Ignore, and add a message.

Exclude the test from compilation

From this answer, you can use. The trick is intercept the <id>default-testCompile</id> <phase>test-compile</phase> (default test compile phase) and exclude the class:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <executions>
    <execution>
      <id>default-testCompile</id>
      <phase>test-compile</phase>
      <configuration>
        <testExcludes>
          <exclude>**/MyTest.java</exclude>
        </testExcludes>
      </configuration> 
      <goals>
        <goal>testCompile</goal>
      </goals>
    </execution>                  
  </executions>
</plugin>

Maven Surefire Plugin – Inclusions and Exclusions of Tests, From time to time you only want to run one test, one test method, one class or one package from the command-line. Or on the contrary: you� Maven: Exclude specific test(s) # Exclude one test class, by using the explanation mark (!) mvn test -Dtest=!LegacyTest # Exclude one test method mvn verify -Dtest=!LegacyTest#testFoo # Exclude two test methods mvn verify -Dtest=!LegacyTest#testFoo+testBar # Exclude a package with a wildcard (*) mvn test -Dtest=!com.mycompany.app.Legacy*


The simplest way of skipping the compilation and execution of test by default in Maven is to add the following property in your pom.xml:

 <properties>
    <maven.test.skip>true</maven.test.skip>
 </properties>

You still can change the behavior by override the property from the command-line:

-Dmaven.test.skip=false

Or by activating a profile:

<profiles>
    <profile>
        <id>testing-enabled</id>
        <properties>
           <maven.test.skip>false</maven.test.skip>
        </properties>
    </profile>
</profiles> 

Run one or Exclude one test with Maven, How to permanently exclude one test class in a Maven build, Skip the test. From the docs, if you want to skip a test, you can use: <project> <build> <plugins>� By default, when building project, Maven will run the entire unit tests automatically. If any unit tests is failed, it will force Maven to abort the building process. In real life, you may STILL need to build your project even some of the cases are failed. In this article, we will show you a few ways to skip the unit test. 1. maven.test.skip=true


Exclude one test class, by using the explanation mark (!)
mvn test -Dtest=!LegacyTest
Exclude one test method
mvn verify -Dtest=!LegacyTest#testFoo
Exclude two test methods
mvn verify -Dtest=!LegacyTest#testFoo+testBar
Exclude a package with a wildcard (*)
mvn test -Dtest=!com.mycompany.app.Legacy*

This is from: https://blog.jdriven.com/2017/10/run-one-or-exclude-one-test-with-maven/

maven: How can I skip test in some projects via command line , To exclude tests from build in Maven, you need to configure Maven Surefire plugin in the pom.xml file as below: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. < plugin >. < groupId > This will exclude all the test classes from the build lifecycle. This syntax can be used in parameters: test, includes, excludes, includesFile, excludesFile. Tests from dependencies. By default, Surefire will only scan for test classes to execute in the configured testSourceDirectory. To have the plugin scan dependencies to find test classes to execute, use the dependenciesToScan configuration.


Maven - how to exclude tests from build, This maven tutorial describes how to exclude particular resources from being processed. Bioinformatics (10); Cascading Style Sheets (47); Classes and Objects (14) some of the files to be added to the build while other files are excluded. <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</ scope>� You can also skip the tests via 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.


How do I exclude particular resources from being processed?, To set up dependency management for your build, refer to Build Support and the Example Projects. For Maven, check out the junit5-jupiter-starter-maven project . For Ant Used to disable a test class or test method; analogous to JUnit 4's @ Ignore . So the question becomes relevant: How do you keep the state from one� How to create a jar containing test classes. When you want to create a jar containing test-classes, you would probably want to reuse those classes. There are two ways to solve this: Create an attached jar with the test-classes from the current project and loose its transitive test-scoped dependencies. Create a separate project with the test


JUnit 5 User Guide, For example, In my project I have test - call TestClass and a specific test call test 1 (see pom.xml or build log); Which version junit-dataprovider and spring-test do you use? (Set -DfailIfNoTests=false to ignore this error.)� Including and excluding files and directories. When specifying a resource directory, every file within that directory may not be used. Thus, we may have to specify only the files that we want to include or specify the files that we want to exclude.