我的 pom.xml 中有以下配置
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<excludes>
<exclude>**/DocumentChangeSubscriberTest.java</exclude>
</excludes>
</configuration>
</plugin>
(...)
DocumentChangeSubscriberTest
是一个 arquillian 测试,我只想在指定的配置文件中运行。
当我输入 mvn install
所有测试都在运行,甚至是 DocumentChangeSubscriberTest
我想排除的。
如何从默认(匿名)配置文件中排除测试?
我试过了 <includes><include>...
它工作正常 - 只运行了包含的测试。
我看到了maven surefire test plugin runs tests even if they are excluded:但这对我不起作用。我也试过很多版本的maven-surefire-plugin
没有结果。有任何想法吗?
最佳答案
虽然您已经找到了答案,但还有一个更简单的解决方案。
不需要使用<excludes>
标签。坚持 maven 命名约定 就足够了。只需将集成测试命名为 *IT
后缀(例如:MyClassIT.java
)并让maven-failsafe-plugin
做它的工作。
请记住 maven-surefire-plugin
旨在运行您的单元测试。这意味着所有具有以下通配符模式的测试类:
-
Test*.java
-
*Test.java
-
*TestCase.java
另一方面,maven-failsafe-plugin
旨在运行您的集成测试,并将自动包含具有以下通配符模式的所有测试类:
-
IT*.java
-
*IT.java
-
*ITCase.java
您的 arquillian 测试肯定是一个集成测试,因此将其重命名为 DocumentChangeSubscriberIT.java 将立即解决您的所有问题。
顺便说一句。 this post就从集成测试中分离单元测试而言也可能有用。
希望对大家有帮助。
关于java - Maven(surefire)测试插件排除不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25739969/