Kon*_*itz 1 maven maven-surefire-plugin maven-compiler-plugin
我试图从我的maven构建中排除一个测试(我不希望编译或执行测试).以下不起作用:
<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>
Run Code Online (Sandbox Code Playgroud)
实现目标的正确方法是什么?我知道我可以使用命令行选项-Dmaven.test.skip=true,但我希望这可以成为其中的一部分pom.xml.
mvn test -Dtest=!LegacyTest
Run Code Online (Sandbox Code Playgroud)
mvn verify -Dtest=!LegacyTest#testFoo
Run Code Online (Sandbox Code Playgroud)
mvn verify -Dtest=!LegacyTest#testFoo+testBar
Run Code Online (Sandbox Code Playgroud)
mvn test -Dtest=!com.mycompany.app.Legacy*
Run Code Online (Sandbox Code Playgroud)
这是来自: https: //blog.jdriven.com/2017/10/run-one-or-exclude-one-test-with-maven/
从文档中,如果您想跳过测试,可以使用:
<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>
Run Code Online (Sandbox Code Playgroud)
在您的示例中,请参阅您使用的差异,<artifactId>maven-compiler-plugin</artifactId>并且文档说您应该使用<artifactId>maven-surefire-plugin</artifactId>插件.
并且,如果要禁用所有测试,可以使用:
<configuration>
<skipTests>true</skipTests>
</configuration>
Run Code Online (Sandbox Code Playgroud)
此外,如果您正在使用JUnit,您可以使用@Ignore,并添加消息.
从这个答案,你可以使用.诀窍是拦截<id>default-testCompile</id>
<phase>test-compile</phase>(默认测试编译阶段)并排除类:
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5865 次 |
| 最近记录: |