Selenium, TestNG - отчет по экстентам не генерируется должным образом при запуске двух файлов testng. xml в pom. xml - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть два класса тестирования, каждый из которых имеет два теста и отдельные файлы testng xml. Я использую слушателя для создания отчета с использованием отчетов экстентов. Я назвал два xml файла в pom. xml в плагине surefire (показано ниже). Тесты работают нормально, и отчет генерируется. На главной странице отчета по экстентам я вижу все 4 теста, но на всех других вкладках (Категория, исключение, автор, панель мониторинга) я вижу только два теста из SecondClassTest. java. (В основном, какой бы файл xml я ни назвал секундой в пом. xml)

Для добавления отчета я использую reporter.setAppendExisting (true);

Изображение главной страницы показывает 4 ожидаемые тесты enter image description here

Изображение одной из других вкладок показывает только два последних теста из последнего xml файла (второй. xml). enter image description here

Демо-прослушиватели. 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...