如何根据 TestNG 断言结果使用 Log4j 级别?
How to use Log4j level depending on TestNG Assert result?
我正在使用 TestNG,在我的每个测试结束时都有一个 Assert 验证。
Assert.assertEquals(true, mainPage.menu.isDisplayed());
如何使用 Log4j 记录此操作的结果?
如果测试失败 - Log4j 级别为错误,如果测试通过 - Log4j 级别为信息。
为此,您必须实施 testng 侦听器。
可以在这里找到信息:http://testng.org/doc/documentation-main.html#testng-listeners
在创建实现它们的 class 之后,在相关方法中,您可以将记录器设置为适当的日志记录级别。
示例:
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());
}
}
然后将侦听器附加到您的测试中class "or" 如果您有一些复杂的抽象页面结构,最好放在底部。
示例:
@Listeners(TestNGListener.class)
public abstract class AbstractTest {
}
通过以下配置,您可以接收test/sutes/etc..
特有的testng事件
祝你好运:)
我正在使用 TestNG,在我的每个测试结束时都有一个 Assert 验证。
Assert.assertEquals(true, mainPage.menu.isDisplayed());
如何使用 Log4j 记录此操作的结果? 如果测试失败 - Log4j 级别为错误,如果测试通过 - Log4j 级别为信息。
为此,您必须实施 testng 侦听器。 可以在这里找到信息:http://testng.org/doc/documentation-main.html#testng-listeners
在创建实现它们的 class 之后,在相关方法中,您可以将记录器设置为适当的日志记录级别。
示例:
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());
}
}
然后将侦听器附加到您的测试中class "or" 如果您有一些复杂的抽象页面结构,最好放在底部。
示例:
@Listeners(TestNGListener.class)
public abstract class AbstractTest {
}
通过以下配置,您可以接收test/sutes/etc..
特有的testng事件祝你好运:)