如何连续运行testfx测试?

时间:2017-12-18 14:26:52

标签: javafx testfx

我有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。有什么想法吗?

谢谢, 安迪

1 个答案:

答案 0 :(得分:1)

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

  

一旦舞台可见,就无法设置样式

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

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