我如何 运行 testfx 系列测试?

How can I run testfx tests in series?

我有 2 个 testfx 测试,每个测试都 运行 成功,但是当 运行 串联时,失败。错误信息是:

--- Exception in Async Thread ---
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Cannot set style once stage has been set visible
java.util.concurrent.FutureTask.report(FutureTask.java:122)
...

我通过创建阶段初始化了测试:

@Before
public void setUp() throws Exception {

    FxToolkit.registerPrimaryStage();
    setupStage((stage -> {

        Undecorator undecorator;
        ....

看来线程并没有放过第一轮的阶段。在第二次测试开始之前,我已经尝试了 testfx 论坛中的几种方法来杀死它,包括 FxToolkit.hideStage();Platform.exit();.

我正在使用 org.testfx:testfx-junit:4.0.6-alpha。有什么想法吗?

谢谢, 安迪

您的错误消息告诉您问题所在:

Cannot set style once stage has been made visible

Stage.initStyle() 方法中所述,您需要在舞台设置为可见之前设置样式。您可以通过查看 Application class.

的源代码来确认这一点

如果您需要设置 'one-time-set'.

的属性,解决此问题的唯一方法是为每个测试重新启动 JVM