我试图从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
的一部分。
3条答案
按热度按时间hmtdttj41#
跳过测试
在docs中,如果您想跳过测试,可以用途:
字符串
请参阅不同之处,在你的例子中,你使用
<artifactId>maven-compiler-plugin</artifactId>
,而文档说你应该使用<artifactId>maven-surefire-plugin</artifactId>
插件。如果你想禁用所有测试,你可以用途:
型
此外,如果您使用的是
JUnit
,您可以使用@Ignore,并添加消息。排除编译测试
从this答案,你可以使用。诀窍是拦截
<id>default-testCompile</id> <phase>test-compile</phase>
(默认测试编译阶段)并排除类:型
vlju58qv2#
排除一个测试类,使用感叹号(!)
字符串
排除一种测试方法
型
排除两种测试方法
型
排除带有通配符(*)的包
型
这是来自:https://blog.jdriven.com/2017/10/run-one-or-exclude-one-test-with-maven/
mepcadol3#
在Maven中默认跳过test编译和执行的最简单方法是在
pom.xml
中添加以下属性:字符串
您仍然可以通过从命令行重写属性来更改行为:
型
或者通过激活配置文件:
型