2017-11-29 3 views
0

JavaFxアプリケーションをテストするためにTestFxフレームワークを使用しています。それはテストメソッドベースでテストメソッド上で正常に動作します。しかし、すぐに私がしようとすると、一度に複数のテスト方法、またはテスト・クラスを実行すると、私はこのエラーを取得:複数のJavaFx TestFxテストを実行しているときにエラーが発生しました:原因:java.lang.IllegalStateException:ステージが一度設定されたらスタイルを設定できません

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

そして、私のメインクラス、でステージ上にスタイルを設定します。すなわち:Javaの8

が付属しています

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

私はJavaFXので、TestFxのv4.0.8-αを使用しています誰もがこのエラーを招くことなく、複数の連続したテストを実行する方法を知っていますか?

ご協力いただければ幸いです。

答えて

0

実際、TestFxは、すべてのテストで1つのインスタンスStageを使用しています。可能な解決策として

スタイルをチェックすることで、必要な場合にのみ、それを初期化:

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

関連other question

関連する問題