unit-testing - 我如何使用 TestNG SkipException?

标签 unit-testing exception testing testng

如何有效地使用 TestNG throw new SkipException()?有没有人有例子?

我尝试在测试方法开始时抛出此异常,但它破坏了拆解、设置、方法等,并通过导致一些(不是全部)后续测试也被跳过而造成附带损害,并在 TestNG HTML 报告中显示一堆垃圾。

我使用 TestNG 来运行我的单元测试,并且我已经知道如何使用 @Test 注释的选项来禁用测试。我希望我的测试在我的报告中显示为“存在”,但不计入最终结果。换句话说,如果有一个 @Test 注释选项来“跳过”测试,那就太好了。这样我就可以将测试标记为被忽略的排序,而不会使测试从所有测试列表中消失。

是否需要在@Test 运行之前在@BeforeXXX 中抛出“SkipException”?这或许可以解释我所看到的怪异现象。

最佳答案

是的,我的猜测是正确的。在@Test 中抛出异常不起作用,在@BeforeTest 中抛出异常也不起作用,而我正在按类使用并行。如果这样做,异常将破坏测试设置,并且您的 TestNG 报告将在所有相关的@Configuration 方法中显示异常,甚至可能导致后续测试失败而不会被跳过。

但是,当我将它放在@BeforeMethod 中时,它会完美运行。很高兴我能弄明白。 documentation of the class建议它可以在任何 @Configuration 注释的方法中工作,但我正在做的事情不允许我这样做。

@BeforeMethod
public void beforeMethod() {
    throw new SkipException("Testing skip.");
}

关于unit-testing - 我如何使用 TestNG SkipException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591712/

相关文章:

c++ - 检查容器元素之间关系的 googletest 匹配器

java - 从 try-catch block 返回值的正确方法是什么?

c# - 使用 Moq 调用验证 protected 抽象方法

python - Tkinter - 询问一个小部件的回调

unit-testing - Golang模拟上下文 panic

unit-testing - 我在哪里可以找到一些 GPS 单元测试数据?

php - `[Exception] DateTime::__construct(): ` 依赖系统的时区设置是不安全的

testing - 设置开发服务器引用

unit-testing - 如何在我的 go 测试中实现 faker?

java - 为什么在 ArrayList 上使用 for-each 循环不起作用?