0

Java Swing を Fest でテストしようとしています。fixture ( frameFixture.close()私の問題は、テストのメソッドの一部としてフレームを閉じると@After tearDown()、テストクラスランナーからのコンソール出力が何らかの形でブロック/非表示/消費されることです(どちらかわかりません)。( から派生したプリントアウトですResult result = JUnitCore.runClasses(testClasses))。

何が原因でしょうか?以下は、関連する setUp() メソッドと TeaDown() メソッド、およびすべてのテストを実行して集計結果を出力するコードの一部、または (おそらく) Fest によって不思議なことに抑制されるものです。

setUp() and tearDown()テストクラスの:

    @Before
    public void setUp() {
        this.frameFixture = new FrameFixture( new DesktopView() ) ;
        this.frameFixture.show() ;
    }

    @After
    public void tearDown() {
        this.frameFixture.close() ;
        this.frameFixture = null ;
    }

テストクラスランナーからのテストの要約(私が呼び出すと抑制されますframeFixture.close()):

    Result result = JUnitCore.runClasses(testClasses) ;

    for( Failure failure : result.getFailures() ) {
        System.out.println( failure.toString() ) ;
    }

    System.out.println("Tests called: " + result.getRunCount() ) ;
    System.out.println("Tests failed: " + result.getFailureCount() ) ;
    System.out.println("Execution time: " + result.getRunTime() + " ms" ) ;
    System.out.println( "All tests passed: " + result.wasSuccessful() ) ;
4

1 に答える 1

1

コメントを追加するのに十分な評価スコアがないため、メモを回答に追加します。

たとえば、メイン フレームが JFrame.EXIT_ON_CLOSE オプションで作成されている場合は、メイン フレームが閉じられたときに System.exit() が呼び出される可能性があります。この場合は、System.exit() を FEST で処理する方法を確認してください。

于 2014-04-16T09:01:36.853 に答える