2017-08-09 129 views
0

我希望我的所有测试(假设100个测试,每个类1个)在几个包中运行3次。我可以设置TestNG:全局设置invocationCount

@Test(invocationCount = SOME_CONSTANT)

但是,这仍然需要一百年的变化。有没有办法在单个抽象类中设置invocationCount(或其他参数),而无需将其添加到每个@Test

回答

1

建立一个注释变压器实现像这样的

public class Transformer implements IAnnotationTransformer { 

    @Override 
    public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) { 
     int someNumber = 100; 
     annotation.setInvocationCount(someNumber); 
    } 
} 

你再用铁丝在这个监听器无论是在浴室的XML文件中使用<listener>标签(或)通过创建服务加载文件META-INF/services/org.testng.ITestNGListener,然后添加一个条目为Transformer进入此文件。

欲了解更多有关听众的信息,你可以看看我的this博客文章。

+0

谢谢。将研究这个并尽快回复 – Andrejs