2

我有 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();and Platform.exit();

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

谢谢,安迪

4

1 回答 1

1

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

舞台可见后无法设置样式

Stage.initStyle()方法中所述,您需要在舞台设置为可见之前设置样式。您可以通过查看类的源代码来确认这一点Application

如果您需要设置“一次性设置”的属性,解决此问题的唯一方法是为每个测试重新启动 JVM。

于 2017-12-19T07:49:53.907 回答