У меня есть два класса тестирования, каждый из которых имеет два теста и отдельные файлы testng xml. Я использую слушателя для создания отчета с использованием отчетов экстентов. Я назвал два xml файла в pom. xml в плагине surefire (показано ниже). Тесты работают нормально, и отчет генерируется. На главной странице отчета по экстентам я вижу все 4 теста, но на всех других вкладках (Категория, исключение, автор, панель мониторинга) я вижу только два теста из SecondClassTest. java. (В основном, какой бы файл xml я ни назвал секундой в пом. xml)
Для добавления отчета я использую reporter.setAppendExisting (true);
Изображение главной страницы показывает 4 ожидаемые тесты
Изображение одной из других вкладок показывает только два последних теста из последнего xml файла (второй. xml).
Демо-прослушиватели. java
public class DemoListeners implements ITestListener{
ExtentHtmlReporter reporter;
ExtentReports extent;
ExtentTest logger;
@Override
public void onStart(ITestContext context) {
reporter = new ExtentHtmlReporter("E:\\someproject\\reports\\reportName.html");
reporter.setAppendExisting(true);
reporter.config().setReportName("My Report");
extent = new ExtentReports();
extent.attachReporter(reporter);
extent.setSystemInfo("HostName", "Window");
extent.setSystemInfo("PC Name", "UserName");
}
@Override
public void onTestStart(ITestResult result) {
Method method = result.getMethod().getConstructorOrMethod().getMethod();
Test test = method.getAnnotation(Test.class);
String testname = test.testName();
String des = test.description();
logger = extent.createTest(testname, des);
logger.assignAuthor("Praveen[![enter image description here][2]][2]");
logger.assignCategory("Regression");
}
}
@Override
public void onTestSuccess(ITestResult result) {
//TODO
}
@Override
public void onTestFailure(ITestResult result) {
logger.fail(result.getThrowable());
}
@Override
public void onTestSkipped(ITestResult result) {
logger.skip(result.getThrowable());
}
@Override
public void onFinish(ITestContext context) {
extent.flush();
}
}
FirstClassTest. java
public class FirstClassTest{
@Test(testName = "First", description = "This is first test", priority = 1)
public void First(){
System.out.println("I am in the First test");
}
@Test(testName = "Second", description = "This is second test", priority = 2)
public void Second(){
Assert.assertEquals(13,12,"Value not matched");
}
}
SecondClassTest. java
public class SecondClassTest{
@Test(testName = "Third", description = "This is third test", priority = 1)
public void Third(){
System.out.println("I am in the First test");
}
@Test(testName = "Fourth", description = "This is Fourth test", priority = 2)
public void Fourth(){
throw new SkipException("This test is skipped");
}
}
Первый. xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite 1">
<listeners>
<listener class-name="test.java.useExtentReports.DemoListeners"/>
</listeners>
<test verbose="2" preserve-order="true" name="Test1">
<classes>
<class name="test.java.useExtentReports.FirstClassTest">
</class>
</classes>
</test>
</suite>
Второй. xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite 2">
<listeners>
<listener class-name="test.java.useExtentReports.DemoListeners"/>
</listeners>
<test verbose="2" preserve-order="true" name="Test2">
<classes>
<class name="test.java.useExtentReports.SecondClassTest"/>
</classes>
</test>
</suite>
пом. xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<suiteXmlFiles>
<!-- <suiteXmlFile>${suiteXmlFile}</suiteXmlFile> -->
<suiteXmlFile>first.xml</suiteXmlFile>
<suiteXmlFile>second.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>