【发布时间】:2017-07-21 00:39:33
【问题描述】:
JUnit 报告我的测试时间时,它看起来包括执行 @BeforeClass @Before 所花费的时间。
我正在使用 JUnit 4.12
在这种情况下,它显示 23.863 秒与测试相比,总共 25.649 秒。 当我手动检测所有方法时,这是故障:
10:11:20.074 [INFO] [mainId] beforeClass completed in 12516ms
10:11:40.083 [INFO] [mainId] beforeTest completed in 20009ms
10:11:44.171 [INFO] [mainId] start_test completed in 4076ms
因此,如果我添加 beforeTest 和 start_test 时间,我会接近 UI 中报告的时间。
- 有没有办法告诉 JUnit 只显示 start_test 时间?
现在我只是像这篇文章一样手动输出时间:https://stackoverflow.com/a/180191/1165140
2017 年 7 月 27 日更新 实际上问题在于之前的测试方法(@Before)而不是我之前认为的@BeforeClass - 我的日志记录错误。仍然在我看来,是否包括这个时间应该是可配置的。我在每次测试前使用@beforetest 设置数据。
我已经确认在 UI 中输出了膨胀的时间,以及从命令行输出的 maven surefire XML。
【问题讨论】:
-
根据javadoc junit.sourceforge.net/javadoc/org/junit/runner/notification/... testStarted() 在每个@Test 即将被调用并且testFinished() 被调用时被调用在每个 @Test 完成时调用,无论它是通过还是失败。这个怎么样?
-
感谢@ansh 的这个建议。我会试试看。
-
我尝试使用 RunListener,但时间仍然包括 beforeTest 时间。在 beforeTest 开始时,它必须在内部调用 testStarted。