【发布时间】:2013-05-26 05:38:02
【问题描述】:
我一直在寻找一段时间,但我仍然无法找到一种方法来做我想做的事。
我在 Eclipse 中使用“作为 JUnit 测试运行”在整个项目中运行我的单元测试。
我实现了一个自定义的 RunListener,它在单例中记录一些测试结果信息(仅供参考,这并不意味着只记录测试结果,我知道我们可以为此导出 junit 报告。这是为了捕获附加信息都在测试方法自定义注解中)。
一旦执行了所有测试,我想将单例信息保存在磁盘上。 (关键字是 ALL :))
我知道我可以覆盖 testRunFinished(这就是我现在所做的), 但是每次执行单个类的所有测试时都会调用此方法(因此由测试类执行一次)。
是不是因为 Eclipse “运行方式”默认将每个类都视为一个套件?
虽然它有效,但将单例状态保持数千次并不是真正有效的。
另外,我想给持久化文件一个正确的名称(如二进制版本 + 日期),但我现在不能,因为我不知道所有测试何时执行,所以每次文件被持久化它会创建一个新文件(包含毫秒的日期),尽管测试还没有结束(因此单例数据不完整)
有什么想法吗?
谢谢!
【问题讨论】:
-
我找到了解决方法。我可以创建一个 TestSuite 并创建一个 AfterClass,但这意味着我需要枚举数千个类,这很麻烦……我会寻找一种动态方式将所有测试类添加到套件中,但我想要一个更好的想法!