我如何 运行 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
我有 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