java - 通过 Annotation Transformer : TestNG 禁用特定测试

标签 java testing junit annotations testng

我有一个包含大量测试用例的大型项目。一些测试用例假设只适用于特定的环境,而另一些则不能。所以我试图跳过或禁用不属于该环境的测试。

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

这是我的Transformer代码

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");
    }
}

到目前为止,我只是想打印。

我有很多包和类,我必须在它们上面强加这个 Transformer。

我应该如何以及在哪里开始这门课?

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

提前致谢

最佳答案

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

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

关于java - 通过 Annotation Transformer : TestNG 禁用特定测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123588/

相关文章:

java - 为什么数字包装类需要提供静态 toString() 方法?

java - 如何检查元素何时从一个类移动到另一个类

java - JUnit 测试 spring 集成配置

Java Web应用程序通信设计?

java - 如何下载 Java SE 6 更新 121?

java - LinkedBlockingQueue 和 ConcurrentLinkedQueue 有什么区别?

asp.net - ASP.Net网站自动化测试工具

ruby-on-rails - 如何干燥 Controller 测试

java - JUnit 端到端集成测试

junit - Ant JUnit 未显示失败的测试详细信息