如何在TestNG中禁用整个单元测试?

63

这是我在JUnit中所能做的:

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

整个类将被忽略。在TestNG中我该怎么做?

1个回答

95

我认为你想要的是:

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

您可以将@Test注释应用于类,以及单独应用于方法。

TestNG文档列出了受支持注释的全面列表,并描述了按组排除/包含测试(如果感兴趣)。下面是相关部分的摘录:

 

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

 

...(剪辑)...

 

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

编辑:根据针对TestNG提出的此缺陷,通过应用


11
这是正确答案:它将禁用该类的所有公共方法。请注意,将@Test注释放在一个方法上将重新启用该方法,且仅限于该方法。如果您看到了不同的情况,请告诉我。 - Cedric Beust
1
显然,其他人在将@Test应用于类级别时也遇到了问题。请参见此问题 - razlebe
可能是TestNG某些版本中的一个bug。 - razlebe
2
确认:根据跟踪此问题的OpenSymphony错误页面的此Google缓存,这确实是一个错误。 - razlebe
1
JUnit的@Ignore的好处在于您可以指定忽略测试的原因。除了留下可能被遗忘删除的注释之外,TestNG是否有其他方法来实现这一点? - Jun-Dai Bates-Kobashigawa
是的,我在将它添加到类级别时遇到了同样的问题。 我不得不在所有测试中都放置enabled=false。 - Marcello DeSales

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