JUnit测试运行器:在运行测试之前创建测试

3

我使用JUnit 3.x TestRunner,在运行测试之前会一次性实例化所有测试。

是否有可用的测试运行器,在运行测试之前只创建每个测试(或至少是每个测试套件中的测试)?
我可以使用JUnit 4.x运行器,但我的测试是3.x测试。


请问您能否提供更多信息,为什么您需要这样做?我不是唯一一个怀疑还有更多需要了解的人。 - guerda
我们有一些广泛的测试基础设施代码,帮助我们组织测试环境和测试数据。不幸的是,一些测试使用构造函数,而一些测试使用setUp来驱动它。我们遇到的问题与时间有关。与其重构将事物从构造函数移动到setUp中,不如让构造函数在setUp之前运行会更容易些。 - topchef
此外,我无法看出在单元测试框架创建测试(执行构造函数)JIT或在测试运行之前将它们排列起来之间有任何显着的区别。 - topchef
2个回答

3
在JUnit 3中,您需要编写自己的TestSuite类来延迟套件中测试的实例化。

1

你可能做错了。

每个单元测试都应该是自包含的,不依赖于任何其他测试结果。否则,当其中一个测试失败时,它将破坏所有依赖于它的测试。因此,您将看到很多错误,没有简单的方法来理解实际原因。另一方面,如果所有单元测试都是独立的,则破损的测试非常容易调试和修复。

编辑:我假设您提出原始问题的原因是因为您的测试中存在某些依赖关系。如果我错了,请忽略这个答案 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接