@Test(enabled = false)对于TestNG中的类是否有效?

8
从TestNG文档中可以看到(enabled = false)可以应用于类或方法。但是似乎只有当应用于方法时才起作用。
有人遇到过相同的问题吗?找到了解决方案吗?

为了读者的利益,它不能是“Enabled”,必须是“enabled”。 - flow2k
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");
    }

}

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


刚刚发现最好使用“test -groups”或“test <module>:<type>.<method>”的命令行用法来单独测试每个测试。 - buddyp450

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接