【问题标题】:How to disable entire unit test in TestNG?如何在 TestNG 中禁用整个单元测试?
【发布时间】:2011-09-06 17:46:51
【问题描述】:

这是我在 JUnit 中可以做的:

import org.junit.*;
@Ignore
public class FooTest {
  //
}

整个班级将被忽略。我怎样才能在 TestNG 中做同样的事情?

【问题讨论】:

    标签: java unit-testing junit testng


    【解决方案1】:

    我相信你想要的是:

    @Test(enabled=false)
    public class FooTest {
      //
    }
    

    (您可以将@Test 注解应用于类,也可以单独应用于方法。)

    TestNG documentation 包含受支持注释的完整列表,如果感兴趣,还描述了按组排除/包含测试。以下是相关部分的引述:

    @Test 将类或方法标记为 测试的一部分。

    ...(剪断)...

    enabled:是否启用此类/方法上的方法。

    编辑: 根据针对TestNG 提出的this defect,通过应用@Test(enabled=false) 来忽略一个类显然是某些TestNG 版本中的错误功能。

    【讨论】:

    • 这是正确的答案:它会将类的所有公共方法标记为禁用。请注意,将 @Test 放在方法上将重新启用该方法,并且仅启用该方法。如果您看到不同的东西,请告诉我。
    • 显然,其他人在课堂级别应用 @Test 时也遇到了问题。见this question
    • 可能是某些版本的 TestNG 的错误。
    • 已确认:根据this Google cache of the OpenSymphony bug page 正在跟踪它,它一个错误。
    • JUnit @Ignore 的好处是您可以指定忽略测试的原因。除了在重新启用测试时留下可能会忘记删除的评论之外,还有什么方法可以在 TestNG 中做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2013-03-12
    • 2016-04-10
    • 2013-10-23
    • 1970-01-01
    • 2011-01-05
    相关资源
    最近更新 更多