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

时间:2013-05-26 05:38:02

标签: java eclipse junit junit4

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

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

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

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

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

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

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

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

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

最后,我创建了一个TestSuite,使用@AfterClass静态方法只在我的单例状态下持续存在。

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

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

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

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