Я использую файл набора с несколькими наборами внутри файла 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. Пробовал много вариантов, но безуспешно.
РЕДАКТИРОВАТЬ:
На самом деле сейчас я использую собственные имена для отчетов, так что нет двух одинаковых имен отчетов. И, когда я использовал одно и то же имя, результаты были бы перезаписаны в том же файле для наборов.