Java 如何在TestNG中发出停止测试的信号?

Java 如何在TestNG中发出停止测试的信号?,java,automated-tests,testng,Java,Automated Tests,Testng,我在中为基于windows的应用程序编写了测试。有时,我的测试会导致windows出现BSOD,因此测试将运行,等待windows启动,直到超时并失败 我已经为BSOD检测和处理编写了一个脚本,这样每当测试启动时,BSOD检测器都将作为侦听器启动,并在BSOD发生时进行处理。但我仍然无法通知我的测试必须停止。它仍然继续执行,直到超时 如何解决这个问题?有没有办法通知监听器终止测试?我想你可能运气不好 在上的讨论清楚地表明,截至2012年8月,没有办法停止正在运行的测试套件 这与2010年2月发布

我在中为基于windows的应用程序编写了测试。有时,我的测试会导致windows出现BSOD,因此测试将运行,等待windows启动,直到超时并失败

我已经为BSOD检测和处理编写了一个脚本,这样每当测试启动时,BSOD检测器都将作为侦听器启动,并在BSOD发生时进行处理。但我仍然无法通知我的测试必须停止。它仍然继续执行,直到超时


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

我想你可能运气不好

在上的讨论清楚地表明,截至2012年8月,没有办法停止正在运行的测试套件

这与2010年2月发布的一篇更老的帖子()相结合,表明TestNG的缺点已经存在一段时间了

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

从我在源代码中看到的(尽管我没有跟踪所有路径),它只是为每个测试创建新任务并运行它们,没有提供提前中断的方法

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


您可以在TestNG Google组上请求此功能(链接如上)。如果您愿意,也可以定制TestNG源代码。

可能的@JasonC副本处理了不同类型的问题。OP希望在出现异常时跳过测试。在这里,我想停止已经在执行的测试。您是否正在测试BSOD期间应用程序的行为?“难道你不想得BSOD吗?”拉迪姆说真的,我不应该得BSOD。但有时我的测试会将损坏的值写入注册表,以查看应用程序的行为。这种负面测试有时会导致BSOD。这里有点奇怪,您是否使用java本身的任何框架(如robot或其他什么)来自动化windows应用程序?还是别的什么?