Как использовать уровень Log4j в зависимости от результата TestNG Assert? - PullRequest
0 голосов
/ 28 декабря 2018

Я использую TestNG, и в конце каждого моего теста есть проверка Assert.

Assert.assertEquals(true, mainPage.menu.isDisplayed());

Как записать результат этой операции, используя Log4j?Если тест не пройден - уровень Log4j - ошибка, если тест пройден - уровень Log4j - информация.

1 Ответ

0 голосов
/ 28 декабря 2018

, чтобы достичь этого, вы должны реализовать слушателей testng.Информацию можно найти здесь: http://testng.org/doc/documentation-main.html#testng-listeners

После создания класса, который их реализует, в соответствующем методе вы можете поместить регистратор с соответствующим уровнем ведения журнала.

Пример:

public class TestNGListener implements ITestListener, ISuiteListener, IInvokedMethodListener {

    protected Logger logger = LogManager.getLogger(this.getClass());

    @Override
    public void onTestStart(ITestResult iTestResult) {

    }

    @Override
    public void onTestSuccess(ITestResult iTestResult) {

        logger.info("Test successfully executed.");
    }

    @Override
    public void onTestFailure(ITestResult iTestResult) {

        logger.error("Test Failed with message: " + iTestResult.getThrowable().getMessage());
    }
}

После этого присоедините слушателя к вашему классу тестирования "или", если у вас есть какая-то сложная структура абстрактных страниц, будет хорошо оказаться внизу.

Пример:

@Listeners(TestNGListener.class)
public abstract class AbstractTest {
}

При следующей конфигурации вы можете получать события testng, специфичные для test / sutes / и т.д ..

Удачи с ним:)

...