有没有办法停止排队的 JUnit 测试并仍然保留 JavaFX Gui 运行?

Is there a way to stop queued JUnit tests and still keep the JavaFX Gui running?

我正在编写一个程序来设置 GUI 以启动 JUnit 测试脚本,该脚本在 Java 中使用 Selenium WebDriver。 GUI 在后台设置了一个 JUnit 测试队列(我相信是这样)。在 GUI 上,我想利用一个 "stop test" 按钮来停止执行仍在队列中的所有未来 JUnit 测试,但我想及时执行。我目前有将停止所有测试的代码,但如果队列中有 190 个测试,则需要 1-2 秒以上才能停止执行队列中的单个测试,当您考虑那么多测试时,这既不及时也不对消费者友好:

Field field = JUnitCore.class.getDeclaredField("fNotifier");
field.setAccessible(true);
RunNotifier runNotifier = (RunNotifier) field.get(runner);
runNotifier.pleaseStop();

有没有一种方法可以清除 JUnit 测试队列或关闭特定线程,从而在不终止 GUI 的情况下停止脚本的执行?

您如何在 xml 文件中定义线程?发现了一些使用 parallel 变量立即杀死所有特定线程的东西。也许如果你用一些通用的东西命名你的线程并增加一个计数器以在通用名称的末尾放置一个“_1”......“_2”等等,你可以快速循环并直接杀死线程?您提到了一个测试队列,您对它的工作方式并不满意,也许可以手动将队列交到您自己手中并全部终止。

最近重新访问后,我发现我的问题中的 运行 通知程序运行得足够快,我最近在停止测试操作期间优化了太多子进程。现在 运行 通知程序允许排队的测试意识到它们几乎不能立即 运行。

虽然这在技术上没有回答如何停止执行排队的 JUnit 测试而不至少尝试启动它们的问题。