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

rom*_*eok 5 testng annotations class

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

有人看到同样的,找到了解决方案?

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

Ced*_*ust 10

它似乎对我有用:

@Test(enabled = false)
public class B {

    public void btest1() {
        System.out.println("B.btest1");
    }

}
Run Code Online (Sandbox Code Playgroud)

结果:

===============================================
SingleSuite
Total tests run: 0, Failures: 0, Skips: 0
===============================================
Run Code Online (Sandbox Code Playgroud)

将false更改为true:

B.btest1

===============================================
SingleSuite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
Run Code Online (Sandbox Code Playgroud)

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

@Test(enabled = false)
public class B {

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

}
Run Code Online (Sandbox Code Playgroud)

这种情况将运行测试,因为通过@Test在方法上重复注释,您还将该enabled属性覆盖为其默认值,即true.

解决方案是enabled=false在方法层面重申:

@Test(enabled = false)
public class B {

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

}
Run Code Online (Sandbox Code Playgroud)

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