Можем ли мы интегрировать отчеты Extent с Qmetry Automation Framework (QAF)? - PullRequest
0 голосов
/ 29 мая 2020

Можем ли мы интегрировать отчеты Extent (в частности, с использованием адаптеров, TestNG или Cucumber) с Qmetry Automation Framework (QAF)? Если да, укажите шаги. Со своей стороны, я попробовал то, что здесь упоминается: http://extentreports.com/docs/versions/4/java/testng.html И я не вижу никаких генерируемых отчетов.

1 Ответ

0 голосов
/ 06 сентября 2020

Ответ на ваш вопрос: ДА. В Qmetry Automation Framework (QAF) мы можем интегрировать отчеты Extent.

Я расскажу, как делать шаги в моем следующем обновлении.

Edit / Update: Создайте класс, как показано ниже:

public class ExtentReporter implements IReporter {
private ExtentReports extent;

@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
    extent = new ExtentReports(System.getProperty("user.dir")+"/ExtentReport.html", true);
    for (ISuite suite : suites) {
        Map<String, ISuiteResult> result = suite.getResults();

        for (ISuiteResult r : result.values()) {
            ITestContext context = r.getTestContext();
            try {
                buildTestNodes(context.getPassedTests(), LogStatus.PASS);
                buildTestNodes(context.getFailedTests(), LogStatus.FAIL);
                buildTestNodes(context.getSkippedTests(), LogStatus.SKIP);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    extent.flush();
    extent.close();
}

private void buildTestNodes(IResultMap tests, LogStatus status) throws IOException {
    ExtentTest test;

    if (tests.size() > 0) {
        for (ITestResult result : tests.getAllResults()) {
            test = extent.startTest(result.getMethod().getMethodName());

            test.getTest().setStartedTime(getTime(result.getStartMillis()));
            test.getTest().setEndedTime(getTime(result.getEndMillis()));

            for (String group : result.getMethod().getGroups())
                test.assignCategory(group);

            String message = "Test " + status.toString().toLowerCase() + "ed";

            if (result.getThrowable() != null)
                message = result.getThrowable().getMessage();

            test.log(status, message);
            extent.endTest(test);
        }
    }
}

private Date getTime(long millis) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(millis);
    return calendar.getTime();
}

}

При запуске пакета или файла. xml добавьте указанный выше класс в качестве слушателя.

    <listeners>
    <listener class-name="YOUR.LOCATION.ExtentReporter" />
</listeners>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...