我在maven中有很多适用于不同环境的配置文件,我想跳过一些使用其中一些配置文件的测试。可以跳过一些测试类吗?我一直在寻找,只找到了属性skipTests
,但它跳过了所有的测试。
答案 0 :(得分:2)
您可以配置Maven Surefire Plugin以基于ant样式路径表达式或正则表达式排除某些测试。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<excludes>
<exclude>**/SomeTest.java</exclude>
</excludes>
</configuration>
</plugin>
为了使用正则表达式,语法为%regex[expr]
,其中expr是实际表达式。另请注意,正则表达式匹配是通过.class
个文件而不是.java
个文件完成的。
答案 1 :(得分:1)
是。你基本上有两个选择:
指定此参数以按文件名运行单个测试,覆盖
includes/excludes
参数。您在此处指定的每个模式都将用于创建格式为**/${test}.java
的包含模式,因此您只需输入&#34;-Dtest=MyTest
&#34;运行一个名为&#34;foo/MyTest.java
&#34;的测试。测试图案前缀为!将被排除在外。 此参数会覆盖includes/excludes
参数和TestNG suiteXmlFiles参数。从2.7.3开始,您可以通过添加#myMethod
或#my*ethod
在测试中执行有限数量的方法。例如,&#34;-Dtest=MyTest#myMethod
&#34;。 junit 4.x和testNg支持此功能。
<强>更新强>
此答案假定您要从命令行动态排除测试。如果您希望在特定的配置文件中排除测试,Aleksandr的anwswer是正确的。