一直使用TestFx框架来测试我的JavaFx应用程序。它通过测试方法在测试方法上运行良好。但是,一旦我尝试运行多个测试方法或一次测试类,我就会收到此错误:
Caused by: java.lang.IllegalStateException: Cannot set style once stage has been set visible
我的测试类看起来像这样:
public class TestExample extends ApplicationTest {
@Override
public void init() throws TimeoutException {
System.setProperty("workingDir", "src/test/resources/test1");
}
@Override
public void start(Stage stage) {
final Main main = new Main();
main.start(stage);
}
@Test
public void testHungProcess_clientForciblyStopsProcess(){
//....do some testing
}
}
我的主课, 在舞台上设置了一些风格。即:
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
//....other things
primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.initStyle(StageStyle.TRANSPARENT);
//....other things
}
}
我正在使用TestFx v4.0.8-alpha和Java 8附带的JavaFx。
有没有人知道如何在不引发此错误的情况下运行多个连续测试?
任何帮助都将不胜感激。
答案 0 :(得分:0)
TestFx
使用Stage
的一个实例进行所有测试。
可能的解决方案是检查样式并仅在需要时启动它:
if (stage.getStyle() != StageStyle.UNDECORATED) {
stage.initStyle(StageStyle.UNDECORATED);
}