4

Junit4 中的测试套件运行良好,但这里有一个障碍:

@RunWith(Suite.class)
@Suite.SuiteClasses({ A.class, B.class, ...})

如果有人开发了一个单元测试并忘记将它包含在 Suite.SuiteClasses 中,那显然是个问题。

(这不是一个亟待解决的问题,因为 Ant 稍后会抓住它,但仍然如此)

所以我想知道:如果您在 Eclipse 项目中说“测试”文件夹并且其中有一些包含类的包 - 有没有办法以某种方式将它们全部自动包含在 junit4 测试套件中?

(是的,您可以右键单击“测试”文件夹并以 Junit 身份运行,但有时会由于某种原因在个别测试通过时失败,所以我对这个解决方案不太信任,而且测试套件是很好的玩具; -))。

4

3 回答 3

1

我建议ClasspathSuite

import org.junit.extensions.cpsuite.ClasspathSuite;
import org.junit.runner.RunWith;
@RunWith(ClasspathSuite.class)
public class MySuite {}
于 2013-02-01T07:27:19.553 回答
0

不是答案,而是更多评论:

[...] 以 Junit 身份运行,但有时由于某些原因导致个别测试失败,而它们分别通过 [...]

原因是某些测试没有正确清理。这应该始终让您保持警惕。尝试找出一对无法在一次“运行”中执行的测试,并仔细查看第一个测试。根据我自己的经验:尽快解决这些问题(又名:现在!),否则您以后可能会遇到非常深的问题(通常:来自 QA 人员的投诉,例如“测试在我的环境中失败”)

于 2012-12-06T12:41:38.470 回答
0

我不同意 Andreas_D。这不是因为测试不会自行清理。好的单元测试不必自己清理。这是因为您的某些测试取决于另一个测试的结果。你需要更好的测试和/或夹具

但是我同意“立即修复它们!”部分。当您的测试结果不可重现时,您遇到了严重的问题

于 2012-12-08T14:22:20.877 回答