2

我一直在寻找一段时间,但我仍然找不到一种方法来做我想做的事。

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

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

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

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

是因为 Eclipse“运行方式”默认将每个类视为一个套件吗?

虽然它有效,但将单例状态保持数千次并不是很有效。

另外,我想给持久化文件起一个正确的名称(如二进制版本+日期),但我现在不能,因为我不知道所有测试何时执行,所以每次文件都被持久化将创建一个新文件(包含毫秒的日期),尽管测试尚未结束(因此单例数据不完整)

任何想法 ?

谢谢 !

4

1 回答 1

0

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

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

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

在此处查看答案:如何在 JUnit 4 中动态创建测试套件?.

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

于 2013-05-26T06:47:25.723 回答