Я использую файл набора с несколькими наборами внутри файла testng.xml
следующим образом:
<suite-files>
<suite-file path="suite1"></suite-file>
<suite-file path="suite2"></suite-file>
</suite-files>
Я инициализирую ExtentReport
в BeforeSuite
.
private static void initializeExtentReport(Configuration config) {
if (extent == null) {
extent = new ExtentReports();
htmlReporter = new ExtentHtmlReporter("reportLocation");
ClassLoader classLoader = ExtentReportService.class.getClassLoader();
File extentConfigFile = new File(classLoader.getResource("extent-config.xml").getFile());
htmlReporter.loadXMLConfig(extentConfigFile);
extent.attachReporter(htmlReporter);
extent.setSystemInfo("Environment", config.getAutomationServer());
}
}
В AfterSuite
я звоню flush()
.
Таким образом, в основном проблема заключается в том, что когда предыдущий набор вызывается для второго набора, проверка (extent==null
) становится ложной. Я также прошел через JavaDocs
для ExtentReports
и нашел там метод detachReporter()
. Но я не могу получить доступ к моей IDE. Перепробовал много вариантов, но безрезультатно.
EDIT:
В настоящий момент происходит то, что я использую пользовательские имена для отчетов, чтобы не было двух одинаковых имен отчетов. И когда я использовал одноименное имя, результаты были бы перезаписаны в один и тот же файл для наборов.