在Maven中跳过一些测试

时间:2014-03-26 10:31:54

标签: maven junit

我在maven中有很多适用于不同环境的配置文件,我想跳过一些使用其中一些配置文件的测试。可以跳过一些测试类吗?我一直在寻找,只找到了属性skipTests,但它跳过了所有的测试。

2 个答案:

答案 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)

是。你基本上有两个选择:

  • 使用-Dtest =!testToExclude,!test2ToExclude(这些测试需要不合格)。 见Surefire-Plugin
  

指定此参数以按文件名运行单个测试,覆盖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支持此功能。

  • 如果要排除多个测试,也可以使用excludeFile参数。

<强>更新

此答案假定您要从命令行动态排除测试。如果您希望在特定的配置文件中排除测试,Aleksandr的anwswer是正确的。