我正在尝试使用Fest测试Java Swing。我的问题是,关闭框架fixture ( frameFixture.close())作为我测试的@After tearDown()方法的一部分,以某种方式阻止/隐藏/使用(不知道哪个)测试类运行器的控制台输出。
(这是从Result result = JUnitCore.runClasses(testClasses)派生的打印输出)。

知道可能是什么原因吗?以下是相关的setUp()和tearDown()方法,
以及运行所有测试并打印出总结果的代码,或者(大概)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() ) ;

最佳答案

我的信誉得分不足,无法添加评论,所以我将笔记添加到答案中。

可能在关闭主框架时调用System.exit(),例如,如果它是使用JFrame.EXIT_ON_CLOSE选项创建的。如果是这种情况,请检查how to handle System.exit() with FEST

10-02 06:46