8

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

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

4

1 回答 1

14

它似乎对我有用:

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

}

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

于 2012-05-03T17:04:27.613 回答