使用 Maven 禁用 TestNG 的 HTML 报告

Disable HTML reporting for TestNG with Maven

我们 运行 使用 Maven 3.0.5、Surefire 2.7.1 和 TestNG 5.10 测试 TestNG。

我们要禁用在 target/surefire-reports/Command line suite 下创建的 HTML 报告的生成,后一个目录是 TestNG 套件名称。我们认为是 TestNG 的 reporter 创建了一个报告,但是尽管有以下配置,报告还是不能被禁用。

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.7.1</version>
    <configuration>
        <properties>
            <property>
                <name>usedefaultlisteners</name>
                <value>false</value>
            </property>
        </properties>
    </configuration>
</plugin>

有没有办法关闭 HTML 报告?每次测试都需要花费大量时间 运行。

这些版本的 TestNG 和 Surefire 存在一个错误,导致无法使用侦听器进行配置。来自 Surefire 文档中的 Using Custom Listeners and Reporters

Unsupported versions: - TestNG 5.14.1 and 5.14.2: Due to an internal TestNG issue, listeners and reporters are not working with TestNG. Please upgrade TestNG to version 5.14.9 or higher. Note: It may be fixed in a future surefire version.

这可能也会影响 5.10,因此您需要升级到较新版本的 TestNG。同时,您还可以将 Maven Surefire Plugin 升级到当前最新版本,即 2.19.1:

<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.9.8</version> <!-- or 5.14.10 for the latest in 5.x branch -->
  <scope>test</scope>
</dependency>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.19.1</version>
  <configuration>
    <properties>
      <property>
        <name>usedefaultlisteners</name>
        <value>false</value>
      </property>
    </properties>
  </configuration>
</plugin>

值得补充的是,这将禁止 TestNG 生成 HTML 报告,但 Surefire 本身仍会生成 XML 报告。您可以使用 Surefire 配置中的 disableXmlReport 参数禁用那个。