TestNG如何在TestListenerAdapter监听器的onTestFailure方法获取断言失败信息
实现方法
你可以通过ITestResult提供的getThrowable()方法直接获取断言失败对应的异常对象,读取异常的message字段即可拿到具体的失败描述,示例代码如下:
public class DemoListner extends TestListenerAdapter { @Override public void onTestFailure(ITestResult tr) { super.onTestFailure(tr); Throwable testError = tr.getThrowable(); if (testError != null) { // 此处获取到的就是"a is not equal to b"这类断言失败信息 String assertFailureMsg = testError.getMessage(); // 后续可以按需求处理该信息,比如打印、上报、存日志等 System.out.println("断言失败详情:" + assertFailureMsg); } } }
原理解释
TestNG执行测试用例过程中,所有未被捕获的异常(包括断言失败抛出的AssertionError、业务代码抛出的普通异常)都会被TestNG捕获,存入对应测试用例的ITestResult实例中,你可以在任意测试生命周期回调方法中通过该实例读取异常的全量信息,包括错误描述、堆栈信息等。
内容的提问来源于stack exchange,提问作者user12736702
相关产品推荐
相关产品推荐

