Как добавить тестовый случай ожидания в тестовой среде TestNg и Allure? - PullRequest
0 голосов
/ 20 ноября 2018

Невозможно записать результат теста Allure, если я использую следующий таймаут в TestNG.xml и методах.

<test name="TestName" time-out="60000">
        <classes>
            <class name="ClassName">
                <methods><include name="MethodName"></include>
                </methods>
            </class>
        </classes>
    </test>

ИЛИ

@Test (timeOut = 10*60000)

Исключение: io.qameta.allure.AllureResultsWriteException: не удалось записать результат теста Allure. Вызвано: java.nio.channels.ClosedByInterruptException

Слушатель, который я использовал:

public class AllureListener implements IHookable {

    @Override
    public void run(IHookCallBack callBack, ITestResult testResult) {

        callBack.runTestMethod(testResult);
        if (testResult.getThrowable() != null || testResult.getStatus() == ITestResult.FAILURE
                || testResult.getStatus() == ITestResult.SKIP
                || testResult.getStatus() == ITestResult.SUCCESS_PERCENTAGE_FAILURE
                || testResult.getStatus() == ITestResult.SUCCESS_PERCENTAGE_FAILURE) {
            String methodName = testResult.getName().toString().trim();
            ITestContext context = testResult.getTestContext();
            WebDriver driver = (WebDriver) context.getAttribute("driver");
            if (driver != null) {
                AllureReportUtil ru = new AllureReportUtil();
                ru.addAttachment(driver, methodName);
            }
        }
}

Пожалуйста, помогитея в этом.

...