java - 如何在 TestNG 中发出停止测试信号?

标签 java automated-tests testng

我已经为我的基于 Windows 的应用程序编写了测试 TestNG 。有时我的测试会导致 Windows BSOD,因此测试将等待 Windows 启动直到超时并失败。

我写了一个Listener用于 BSOD 检测和处理,以便每当测试开始时 BSOD 检测器都会作为监听器启动,并在发生 BSOD 时进行处理。但我仍然无法通知我的测试必须停止。它仍然继续执行直到超时。

如何解决这个问题?有没有办法通知测试从监听器终止它?

最佳答案

我想你可能不走运。

https://groups.google.com/forum/#!topic/testng-users/BkIQeI0l0lc 的讨论清楚地表明,截至 2012 年 8 月,无法停止正在运行的测试套件。

结合 2010 年 2 月的一篇更旧的帖子 ( https://groups.google.com/forum/#!topic/testng-users/FhC3rqs1yDM ) 表明,它长期以来一直是 TestNG 的一个缺点。

当前的 TestNG 文档没有描述任何停止该套件的方法。

从我在 https://github.com/cbeust/testng/blob/master/src/main/java/org/testng/TestNG.java 的源代码中可以看到(尽管我没有追踪所有路径) ,它只是为每个测试创建新任务并运行它们,无法提前中断。

也许您可以修改您的测试以访问某些标志,该标志指示是否应跳过后续测试(例如由 BSOD 检测器触发)。如果设置了此标志,则所有后续测试都负责将自己指示为已跳过。这可能并不理想,但一种思考方式是:如果在测试之前检测到 BSOD(或其他终端事件),则应跳过任何测试。

您可以在 TestNG Google 群组(上面有链接)上请求此功能。如果您愿意,您也许还可以自定义 TestNG 源。

关于java - 如何在 TestNG 中发出停止测试信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20063929/

相关文章:

java - 在 Raspbian for Java 上安装 OpenCV, "Could not FindJNI"

java - 发送邮件在 Spring/Maven/Java 6 环境中不起作用

java - Eclipse 选项卡仅在项目内关闭

java - 我将如何在 scala 程序中编译和执行 java 程序?

unit-testing - drone.io headless Dart 测试

java - 如何在多个浏览器中使用不同的登录并行执行 TestNG.xml

java - 使用 javax.mail(或类似的)查找可用的邮件存储、可用空间等

junit - 可以用junit进行压力测试吗?

java - 如何通过命令行向testng xml传递参数

java - 我们可以跳过 testng xml 中的 java @AfterClass 方法吗