范围报告被覆盖,而不是为多个测试附加

时间:2019-10-11 10:40:09

标签: java selenium cucumber extentreports

我正在使用Extent Report Version 4.0.9为我的两个测试生成报告。我正在从事硒,java,睾丸,黄瓜,maven项目。我的cummanOptions中有两个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。某种程度上,旧版本中的setAppendExisting(true);方法似乎在版本4中不存在。

2 个答案:

答案 0 :(得分:0)

在下面的代码行之后,请使附件存在为真。

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

这将在执行后追加测试。

答案 1 :(得分:0)

当我更改testng.xml时,我可以解决ExtentReport改写的问题,如下所示:

<?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 -->