我试图从我的 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>
实现我的目标的正确方法是什么?我知道我可以使用命令行选项-Dmaven.test.skip=true
,但我希望这成为pom.xml
.
跳过测试
来自docs,如果你想跳过测试,你可以使用:
<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>
看看差异,在您的示例中,您使用<artifactId>maven-compiler-plugin</artifactId>
,医生说你应该使用<artifactId>maven-surefire-plugin</artifactId>
插件代替。
而且,如果您想禁用所有测试,您可以使用:
<configuration>
<skipTests>true</skipTests>
</configuration>
另外,如果您正在使用JUnit
, 您可以使用@Ignore,并添加一条消息。
从编译中排除测试
From this回答,可以用。诀窍是拦截<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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)