2011-03-23 171 views
0

使用JUnit的assumeTrue,你可以跳过一个测试,但是有什么方法可以告诉JUnit测试已经被跳过了吗?它似乎只是报告,测试已通过......报告忽略测试,并在JUnit中获取实时报告?

此外,有没有办法在@After方法检测,如果有任何测试失败?

E.g.

@After 
public void tearDown() { 
    //.... How many tests passed and how many failed? 
} 

我知道这个信息在年底,所有的测试报道,但我希望能够访问它在@After功能。

+0

对不起,请问为什么? – khmarbaise 2011-03-23 11:27:12

+0

我猜你指的是第2点...它的用户能力改进,记录当前的统计数据,因为测试正在运行。如果测试套件需要运行10分钟以上,那么这很有用......它很高兴知道早期是否出现故障。 – mrwooster 2011-03-23 11:30:21

+0

如果你的测试很慢,你必须让它们更快。这听起来更像是集成测试,而不是单元测试... – khmarbaise 2011-03-23 11:31:44

回答

0

此外,是否有任何方法来检测@After方法,如果任何测试失败?

您可以实现自己的测试运行:

@RunWith(MyRunner.class) 

@see:org.junit.runners.BlockJUnit4ClassRunner

或者你可以看看TestDecorators(使用JUnit 4.7)junit的。 extensions.TestDecorator。这听起来像你需要的东西,但我没有与期限。