繁体   English   中英

Maven(surefire)测试插件排除不起作用

[英]Maven (surefire) test plugin excludes not working

我在我的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测试插件运行测试,即使它们被排除在外:但这对我不起作用。 我还尝试了许多版本的maven-surefire-plugin而没有结果。 有任何想法吗?

虽然您已经找到答案,但有一个更简单的解决方案。

无需使用<excludes>标签。 坚持maven命名约定就足够了。 只需用*IT后缀命名集成测试(例如: MyClassIT.java ),让maven-failsafe-plugin完成它的工作。

请记住, maven-surefire-plugin旨在运行您的单元测试 这意味着具有以下通配符模式的所有测试类:

  1. Test*.java
  2. *Test.java
  3. *TestCase.java

另一方面, maven-failsafe-plugin旨在运行集成测试 ,并将自动包含具有以下通配符模式的所有测试类:

  1. IT*.java
  2. *IT.java
  3. *ITCase.java

would solve all your problems ouf of the box. 你的arquillian测试肯定是一个集成测试,所以将它重命名为将解决你所有的问题。

顺便说一句。 这篇文章在集成测试的分离单元测试方面也很有用。

希望它对某人有帮助。

好的,排除测试工作。 这就像拼错我的类名一样简单: DocumentChangeSubsriberTest.java而不是DocumentChangeSubscriberTest.java

抱歉。

虽然这个问题已经解决了,但是如果有人出现类似的排除问题,我会发布这个问题。 我有一个类似的问题 - 在我的排除中不适用于maven-failsafe-plugin。 我使用排除来排除运行一些集成测试。

我使用mvn verify来运行集成测试。

就我而言,

 <excludes>
   <exclude>**/something/*Test.java</exclude>
</excludes>

如果我使用-Dit.test选项,则不起作用
mvn verify -Dit.test="<some_package>"


但是如果我没有指定-Dit.test,那么DOES是否正常工作。
mvn verify

我遇到了类似的问题,只是为了让人们看到另一件事:我的maven-surefire-plugin,如上所述,是在<reporting><plugins><plugin>....</plugin></plugins></reporting>下意外声明的。 <reporting><plugins><plugin>....</plugin></plugins></reporting>但当然需要在<build><plugins><plugin>...</plugin></plugins></build> 顶部的<reporting><build>规范在页面上方和下方都较高,因此需要验证是否有人收到同样的错误。

这个问题已经回答了这个问题(或者至少是一个非常类似的问题): 如何在maven安装目标中跳过测试,同时在maven测试目标中运行它们?

看一看,它可能会有所帮助! 简单的答案是,如果不使用自定义配置文件,您尝试执行此操作不是一种选择(但在该线程中可以更好地解释)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM