我有两个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。有什么想法吗?
谢谢你,安迪
发布于 2017-12-19 07:49:53
您的错误消息告诉您问题所在:
不能在阶段可见后设置样式。
正如Stage.initStyle()方法中所述,您需要在舞台被设置为可见之前设置样式。您可以通过查看Application类的源代码来确认这一点。
解决这个问题的唯一方法是在需要设置“一次性设置”属性的情况下,为每个测试重新启动JVM。
https://stackoverflow.com/questions/47870538
复制相似问题