这是一个简单的方法。
- (你的情况
@UnstableTest
)创建自定义的注释
- 建设的
org.testng.IAnnotationTransformer
的实现,其中你测试进来作为transform()
方法的参数Method
对象,看看它是否有你的注释,如果是,然后注入注释。
下面是它怎么能是这样的:
标记注释,这标志着片状测试
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({METHOD})
@interface UnstableTest {}
注释变压器
public static class UnstableTestInjector implements IAnnotationTransformer {
@Override
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
if (testMethod == null) {
return;
}
UnstableTest unstableTest = testMethod.getAnnotation(UnstableTest.class);
if (unstableTest == null) {
return;
}
annotation.setRetryAnalyzer(TryAgain.class);
}
}
现在,使用添加此监听器<listeners>
标签。
应该这样做。