我正在尝试将 retryAnalyzer 和侦听器添加到我的测试框架中,以在失败时重试测试。
在我的套件运行时出现以下错误:“侦听器接口 org.testng.ITestListener 必须是 ITestListener、ISuiteListener、IReporter、IAnnotationTransformer、IMethodInterceptor 或 IInvokedMethodListener 之一”。由于 ITestListener 在“...之一”的列表中,因此我无法找到我弄错的地方。
每个 testNG 类都有
@Test(retryAnalyzer=RetryAnalyzer.class)
@Listeners({test.base.RetryTestListener.class})
套房有
<listeners>
<listener class-name="test.base.RetryTestListener" />
</listeners>
在 RetryTestListener 我覆盖 onTestSuccess 和 onTestFailure 方法:
public class RetryTestListener extends TestListenerAdapter {
private int count = 0;
private int maxCount = 3;
@Override
public void onTestFailure(ITestResult result) {
if(result.getMethod().getRetryAnalyzer().retry(result)) {
count++;
result.setStatus(ITestResult.SKIP);
}else{count = 0;}
Reporter.setCurrentTestResult(null);
}
@Override
public void onTestSuccess(ITestResult result)
{count = 0;}
TestListenerAdapter 的声明和实现的接口是:
public class TestListenerAdapter implements IResultListener2
IResultListener2:
public interface IResultListener2 extends IResultListener, IConfigurationListener2 {
IResultListener:
public interface IResultListener extends ITestListener, IConfigurationListener {
也许有人曾经遇到过这样的错误信息。提前致谢