【问题标题】:How can I set the TestNG option "configfailurepolicy" via Maven in the POM?如何在 POM 中通过 Maven 设置 TestNG 选项“configfailurepolicy”?
【发布时间】:2015-05-05 20:32:56
【问题描述】:

TestNG 有一个名为 -configfailurepolicy 的选项,您可以在命令行中指定它,或者您可以在套件 XML 文件中指定它(如果您正在使用的话)。

我想在 POM 中通过 Maven 进行设置,但在任何地方都找不到解释如何执行此操作的文档。我可以吗?如果可以,我该怎么办?

【问题讨论】:

    标签: java maven testng pom.xml


    【解决方案1】:

    configfailurepolicy IS 可通过 Failsafe 配置,并在询问时提供 Failsafe 和 TestNG 版本。

    此配置适用于 TestNG 6.8.8 和 Failsafe 2.17。

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.17</version> <executions> <execution> <goals> <goal>integration-test</goal> </goals> <configuration> <properties> <property> <name>configfailurepolicy</name> <value>continue</value> </property> </properties> </configuration> </execution> </executions> </plugin>

    Reporter 的输出结果是

    2016-08-23 08:02:18.367  SampleTest           Starting Test
    2016-08-23 08:02:18.378  SampleTest           sampleTest--Test Skipped
    
    2016-08-22 20:02:18.632  SampleTest1          Starting Test
    2016-08-22 20:02:18.633  SampleTest1          sampleTest1--Test Pass
    
    2016-08-22 20:02:18.738  SampleTest2          Starting Test
    2016-08-22 20:02:18.738  SampleTest2          sampleTest2--Test Pass
    

    顺便说一句,据我所知,在没有通过插件 API 明确满足的情况下,通过 Failsafe 将配置导入 TestNG 没有记录在任何地方 - 我通过反复试验得到了这个。我怀疑此方法适用于其他未通过 Failsafes API 明确支持的command line arguments

    【讨论】:

      【解决方案2】:

      有一张 2012 年的罚单:https://jira.codehaus.org/browse/SUREFIRE-927

      据说,它是固定的。根据拉取请求和发布日期,它应该是任何版本中的可用选项,包括 2.13 或之后的版本。看起来现在的 maven 默认是 2.12.4,所以你必须手动将 surefire 插件配置为工作版本。

      一旦你有了最新版本,你应该可以在命令行中传入-Dconfigfailurepolicy=continue,或者在xml中进行配置

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.13</version>
            <configuration>
              <configfailurepolicy>continue</configfailurepolicy>
            </configuration>
          </plugin>
        </plugins>
      </build>
      

      我遇到了同样的问题,这为我解决了问题。

      【讨论】:

      • 事实证明,您不能将该选项与 Failsafe 一起使用,而只能与 Surefire 一起使用。我正在使用 Failsafe,因为我只执行集成测试。但是,您的回答表明,只要我将它放在正确的位置并使用 Surefire,该选项确实有效。谢谢!
      • @thekevinmonster 这肯定是可以通过故障安全实现的 - 请参阅下面的答案并考虑将其标记为已接受的答案。
      猜你喜欢
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      相关资源
      最近更新 更多