0

我正在尝试用 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() ) ;
4

1 回答 1

1

我没有足够的声誉分数来添加评论,所以我会在答案中添加我的注释。

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

于 2014-04-16T09:01:36.853 回答