当前位置: 首页 > 知识库问答 >
问题:

深度报告被覆盖,而不是在多个测试中被追加

周和歌
2023-03-14

我正在使用扩展报告版本4.0.9为我的两个测试生成报告。我正在从事selenium、java、testng、cucumber和maven项目。我的cucumberOptions中有两个TestRunner文件,我使用POM一个接一个地运行它们。xml。当我只运行一个TestRunner时,数据块报告会按预期生成。但是,当我一个接一个地运行两个TestRunner时,第二个测试生成的区段报告将覆盖第一个测试生成的区段报告。如何将第二个测试生成的ExtentReport附加到第一个测试生成的ExtentReport?

这是我的ExtentReporterListener代码:

public class ExtentReporterListener {

    private static Logger log = LogManager.getLogger(ExceptionHandler.class);
    private static final String TEST_OUTPUT = TestConfiguration.USER_DIR + "\\test-output\\Screenshots";

    public static ExtentHtmlReporter report = null;
    public static ExtentReports extent = null;
    public static ExtentTest feature = null;
    public static ExtentTest scenario = null;

    public static ExtentReports setUp() {
        String reportLocation = "./Reports/Extent_Report.html";

        report = new ExtentHtmlReporter(reportLocation);
        report.config().setDocumentTitle("Word press Automation Test Report");
        report.config().setReportName("Word Press Automation Test Report");
        report.config().setTheme(Theme.STANDARD);
        log.info("Extent Report location initialized...");
        report.start();

        extent = new ExtentReports();
        extent.attachReporter(report);
        extent.setSystemInfo("Application", "Word Press");

        return extent;
    }
}

This is my testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <listeners>
    <listener class-name = "listener-class" />
  </listeners>
  <test thread-count="5" name="frontEnd">
  <parameter name="URL" value="front-end-url" />
    <classes>
      <class name="frontendTestRunner"/>
    </classes>
  </test>
  <test thread-count="5" name="Backend">
  <parameter name="URL" value="back-end-url" /> 
    <classes>
      <class name="backendtestrunner"/>
    </classes>
  </test>  <!-- Test -->
</suite> <!-- Suite -->

我正在使用范围报告版本4。不知何故,在旧版本中的方法在版本4中似乎不存在。

共有2个答案

彭烨熠
2023-03-14

我可以解决当我更改testng时ExtentReport被覆盖的问题。类似于以下内容的xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <listeners>
    <listener class-name = "listener-class" />
  </listeners>
  <test thread-count="5" name="frontEnd">
    <classes>
      <class name="frontendTestRunner">
          <parameter name="URL" value="front-end-url" />
      </class>
      <class name="backendtestrunner">
           <parameter name="URL" value="back-end-url" />
      </class>
    </classes>
  </test>
</suite> <!-- Suite -->
戴品
2023-03-14

在下面的代码行之后,请将append existing设置为true。

report = new ExtentHtmlReporter(reportLocation);
report.setAppendExisting(true);

这将在执行后附加测试。

 类似资料:
  • 您是否曾被测试覆盖度量引入歧途? 测试覆盖工具对单元测试具有重要的意义,但是经常被误用。这个月,Andrew Glover 会在他的新系列 —— 追求代码质量 中向您介绍值得参考的专家意见。第一部分深入地介绍覆盖报告中数字的真实含义。然后他会提出您可以尽早并经常地利用覆盖来确保代码质量的三个方法。 您还记得以前大多数开发人员是如何追求代码质量的吗。在那时,有技巧地放置 main() 方法被视为灵活

  • 我使用maven-surefire-plugin内置功能使用了Flaky测试重新运行机制。此外,我还基于而不是添加了cucumber依赖项。它们都有自己版本的cucumber-java和cucumber-jvm依赖项。 现在,我需要另一个运行程序,其中包含以下代码(根据StackOverflow上的其他论坛和线程) 但我不需要有这个第二个跑者,因为重新运行机制工作绝对出色,只有一个跑者在顶部。ma

  • v2.0 Codecov报表 , 从2017-12-29后开始统计 测试覆盖率为 : , 可以从 https://codecov.io/gh/apache/dubbo 页面得到覆盖率报表 v1.0 基于 2.0.12 版本,统计于 2012-02-03

  • 我在测试android以创建覆盖率测试报告时遇到问题。我使用./gradlew createDebugCoverageReport命令创建覆盖率报告。已创建报告,但所有测试的结果均为%0。第一个设备已植根,但第二个设备未植根。我们使用这两个设备测试勺子,并查看勺子输出。所以这两个设备一起使用。问题:当我们使用第一个设备(根设备)运行此命令时,将按预期创建所有覆盖率测试结果,但当我们同时使用两个设备

  • 我有一个方法应该用新内容覆盖当前文件,但是FileWriter()只是附加新内容,而不是覆盖旧内容。 这是我的FileWriter的设置方式 这是保存方法 当我运行此方法时会出现问题,它没有覆盖文件,而是将新内容附加到文件中。 我想要的: 发生了什么:

  • SonarQube不再显示我用jacoco分析的项目的测试覆盖率。似乎SonarQube有了更新(我发现新规则的日期是5月19日)。我还假设,从那时起,不再评估使用jacoco maven插件收集的测试覆盖率。我见过类似问题的老问题,但那是4年前的事了:JaCoCo SonarQube不兼容版本1007 我将POM更新到最新的插件版本0.8.4,但无济于事。有什么想法吗?我需要在哪里更改一些东西,