通过注释转换器禁用特定测试:TestNG



我有一个包含大量测试用例的大型项目。有些测试用例应该只在特定环境中工作,有些则不然。所以我正在尝试跳过或禁用不属于该环境的测试。

我正在使用注释转换器来覆盖@Test的行为。

这是我的转换器代码

package com.raghu.listener
public class SkipTestsTransformer implements IAnnotationTransformer {
    public void transform(ITestAnnotation annotation, Class testClass,
            Constructor testConstructor, java.lang.reflect.Method testMethod){
//          I intend to do this later
//          if(someCondition){
//              // Do something.
//          }
                System.out.println("Inside Transform");
    }
}

截至目前,我只是想打印。

有很多包和类,我必须强加这个变形金刚。

我应该如何以及在哪里启动此课程?

请提出任何更好的方法来做同样的事情。

提前致谢

IAnnotationTransformer 是一个侦听器。你不需要实例化它,testng会为你做。您可以通过此处列出的任何方式指定侦听器,通过 xmls 或服务加载程序,具体取决于您的测试环境。

如果您在测试用例中没有标记组,那么我认为这是通过将启用属性设置为 false 来实现的方法。 还有另一种方法可以跳过IInvokedMethodListener中的测试,但我没有看到一个比另一个有任何好处。

最新更新