2017-12-18 4 views
1

私は、それぞれが正常に実行されますが直列に実行すると、失敗する2つのtestfxテストを持っています。エラーメッセージは次のとおりです。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; 
     .... 

スレッドが舞台初ラウンドを手放すされていないようです。私は2番目のテストはFxToolkit.hideStage();Platform.exit();を含む開始する前にそれを殺すためにtestfxのフォーラムからいくつかのことを試してみました。

私はorg.testfx:testfx-junit:4.0.6-alphaを使用しています。何かご意見は?

おかげで、 アンディ

答えて

1

あなたのエラーメッセージがあなたの問題を語っている:あなたが必要Stage.initStyle()方法で述べたように、ステージが見え

なされた後

は、スタイルを設定することはできませんステージが表示される前にスタイルを設定します。これは、Applicationクラスのソースコードを調べることで確認できます。この問題を回避する

唯一の方法は、あなたが「ワンタイムセット」ですプロパティを設定する必要がある場合は、各テストのためにJVMを再起動することです。

+0

クール感謝。 setupStageブロック内の2行は次のとおりです。finalシーンscene = newシーン(undecorator、1400,680、Color.TRANSPARENT); stage.initStyle(StageStyle.TRANSPARENT);私はこれらの2番目を削除して、私は行くのが良いです。 –

関連する問題