在侦听器中验证异常时停止testNG执行的方法有多种。下面是一种常见的做法:
下面是一个示例代码:
import org.testng.IInvokedMethod;
import org.testng.IInvokedMethodListener;
import org.testng.ITestResult;
import org.testng.ITestContext;
public class CustomListener implements IInvokedMethodListener {
@Override
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
if (testResult.getThrowable() != null) {
testResult.setStatus(ITestResult.FAILURE);
ITestContext context = testResult.getTestContext();
context.setAttribute("testFailed", true);
}
}
@Override
public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
ITestContext context = testResult.getTestContext();
if (context.getAttribute("testFailed") != null) {
context.getFailedTests().addResult(testResult, method.getTestMethod());
context.setAttribute("testStopped", true);
}
}
}
在测试套件中添加这个侦听器类:
<suite name="Test Suite">
<listeners>
<listener class-name="com.example.CustomListener" />
</listeners>
<!-- 测试类和测试方法 -->
</suite>
这样,当测试方法抛出异常时,测试结果将被设置为失败,并且测试将停止执行。
请注意,这只是一种实现方式,具体的实现方法可能因测试框架和需求而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云