Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳过Maven中的一些测试_Maven_Junit - Fatal编程技术网

跳过Maven中的一些测试

跳过Maven中的一些测试,maven,junit,Maven,Junit,我在maven中有许多用于不同环境的配置文件,我想跳过一些使用这些配置文件的测试。可以跳过一些测试课程吗?我一直在寻找它,只找到了属性skipTests,但它跳过了所有测试。是的。您基本上有两种选择: 使用-Dtest=!测试排除,!test2ToExclude(这些测试不需要合格)。 见: 指定此参数以按文件名运行单个测试,覆盖包含/排除参数。这里指定的每个模式都将用于创建一个包含模式,其格式类似于**/${test}.java,因此您只需键入“-Dtest=MyTest”即可运行一个名为

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

是的。您基本上有两种选择:

  • 使用-Dtest=!测试排除,!test2ToExclude(这些测试不需要合格)。 见:
指定此参数以按文件名运行单个测试,覆盖
包含/排除
参数。这里指定的每个模式都将用于创建一个包含模式,其格式类似于
**/${test}.java
,因此您只需键入“
-Dtest=MyTest
”即可运行一个名为“
foo/MyTest.java
”的测试。测试模式前缀为!将被排除在外。 此参数覆盖
包含/排除
参数和TestNG suiteXmlFiles参数。从2.7.3开始,您可以通过添加
#myMethod
#my*ethod
在测试中执行有限数量的方法。例如,“
-Dtest=MyTest#myMethod
”。JUnit4.x和testNg支持这一点

  • 如果要排除许多测试,还可以使用excludeFile参数
更新:

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

您可以配置为基于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>

org.apache.maven.plugins
maven surefire插件
2.17
**/SomeTest.java
为了使用正则表达式,语法为
%regex[expr]
,其中expr是实际表达式。还要注意,正则表达式匹配是在
.class
文件上完成的,而不是在
.java
文件上完成的