2017-12-18 1 views
1

나는 두 개의 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; 
     .... 

스레드가 무대 처음 라운드의 이동을 두지 않을 것 같다. 나는 FxToolkit.hideStage();Platform.exit();을 포함하여 두 번째 테스트가 시작되기 전에 testfx 포럼에서 여러 가지를 시도해 보았다.

나는 org.testfx:testfx-junit:4.0.6-alpha을 사용하고 있습니다. 이견있는 사람?

감사합니다, 앤디

귀하의 오류 메시지가 당신에게 문제를 말하고있다

답변

1

: 당신이 필요로하는 Stage.initStyle() 방법에 명시된 바와 같이 단계는

가시화되고 나면

스타일을 설정할 수 없습니다를 무대가 보이기 전에 스타일을 설정합니다. Application 클래스의 소스 코드를 tinto 확인하여이를 확인할 수 있습니다.

이 문제를 해결하는 유일한 방법은 '일회성 설정'속성을 설정해야하는 경우 각 테스트에 대해 JVM을 다시 시작하는 것입니다.

+0

고맙습니다. 내 setupStage 블록에있는 두 줄은 다음과 같습니다. 최종 장면 장면 = 새 장면 (undecorator, 1400, 680, Color.TRANSPARENT); stage.initStyle (StageStyle.TRANSPARENT); 나는 이것들 중 2 번째를 제거했고 나는 가기 좋다. –

관련 문제