首页 文章

JUnit - 何时执行所有测试类的监听器?

提问于
浏览
2

我一直在寻找,但我仍然找不到办法去做我想做的事 .

我在Eclipse中使用“Run as JUnit test”在整个项目中运行我的单元测试 .

我实现了一个自定义RunListener,它在一个单例中记录一些测试结果信息(仅供参考,这并不意味着只记录测试结果,我知道我们可以导出这方面的junit报告 . 这是为了捕获测试中的其他信息方法自定义注释) .

我想在执行ALL测试后将单例信息保留在磁盘上 . (关键字是ALL :))

我知道我可以覆盖testRunFinished(这就是我现在所做的),但每次执行一个单独类的所有测试时都会调用此方法(所以一次是测试类) .

是因为Eclipse“Run as”默认将每个类视为套件?

虽然它有效,但保持单身状态数千次并不是真正有效的 .

另外,我想给持久化文件一个正确的名称(就像二进制版本的日期一样),但我现在不能,因为我不知道什么时候所有的测试都被执行了所以每次文件都被保留时它会创建一个新文件(Date包含毫秒)虽然测试没有结束(并且单例数据因此不完整)

任何的想法 ?

谢谢 !

1 回答

  • 0

    最后,我创建了一个TestSuite,使用@AfterClass静态方法只能在我的单例状态下持久化 .

    这意味着我必须在套件中添加所有测试类 .

    幸运的是,感谢JavaRocky,我使用自定义注释动态地包含了所有测试类 .

    请在此处查看答案:How do I Dynamically create a Test Suite in JUnit 4? .

    如果有人有更简单的方法来完成@AfterAllTestRuns ...请告诉我!

相关问题