1

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
    }
}

私の Main クラスはステージ上でいくつかのスタイルを設定します。すなわち:

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
    }
}

Java 8 に付属の JavaFx で TestFx v4.0.8-alpha を使用しています。

このエラーを発生させずに複数の連続したテストを実行する方法を知っている人はいますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

すべてのテストに対して のTestFx1 つのインスタンスを使用するという事実。Stage

可能な解決策は、スタイルを確認し、必要な場合にのみ初期化することです。

    if (stage.getStyle() != StageStyle.UNDECORATED) {
        stage.initStyle(StageStyle.UNDECORATED);
    }

関連する他の質問

于 2017-12-10T06:37:15.880 に答える