0

我正在尝试将 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 {

也许有人曾经遇到过这样的错误信息。提前致谢

4

1 回答 1

0

该错误表明您定义的侦听器未实现 testng 公开的任何侦听器接口。它必须实现要添加到侦听器的上述侦听器之一。

您可以在测试中指定实现类,就像在 @Test 注释中所做的那样。

于 2012-12-26T10:19:35.537 回答