@Test(enabled = false)是否适用于TestNG中的类?

时间:2009-07-19 03:11:21

标签: class annotations testng

从TestNG doc我可以看到(enabled = false)可以应用于类或方法。但似乎只有在应用于方法时才有效。

任何人都看到了相同的,找到了解决方案?

我顺便在ItelliJ IDEA 7.0中运行测试。

1 个答案:

答案 0 :(得分:9)

这似乎对我有用:

@Test(enabled = false)
public class B {    
  public void btest1() {
    System.out.println("B.btest1");
  }
}

结果:

===============================================
SingleSuite
Total tests run: 0, Failures: 0, Skips: 0
===============================================

将false更改为true:

B.btest1

===============================================
SingleSuite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

这可能是你绊倒的事情(很难说,因为你没有提供任何代码):

@Test(enabled = false)
public class B {
 @Test
 public void btest1() {
   System.out.println("B.btest1");
 }
}

此案例将运行测试,因为通过在方法上重复@Test注释,您还将enabled属性覆盖为其默认值true

解决方案是在方法级重申enabled=false

@Test(enabled = false)
public class B {

 @Test(enabled = false)
 public void btest1() {
   System.out.println("B.btest1");
  }
}

我知道它有点违反直觉但是为了在方法注释覆盖类注释的方式上保持一致是必要的。