我正在尝试使用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。