在Java测试套件中自动包含类

在Java测试套件中自动包含类,java,testing,junit,junit4,suite,Java,Testing,Junit,Junit4,Suite,Junit4中的测试套件运行良好,但这里有一个障碍: @RunWith(Suite.class) @Suite.SuiteClasses({ A.class, B.class, ...}) 如果有人开发了一个单元测试,却忘了将它包含在Suite.SuiteClasses中,那显然是个问题 (这不是一个紧迫的问题,因为蚂蚁稍后会捕捉到它,但仍然如此) 所以我想知道:如果您在Eclipse项目中有一个“test”文件夹,并且其中有一些包含类的包,那么有没有一种方法可以自动地将它们全部包含在juni

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

@RunWith(Suite.class)
@Suite.SuiteClasses({ A.class, B.class, ...})
如果有人开发了一个单元测试,却忘了将它包含在Suite.SuiteClasses中,那显然是个问题

(这不是一个紧迫的问题,因为蚂蚁稍后会捕捉到它,但仍然如此)

所以我想知道:如果您在Eclipse项目中有一个“test”文件夹,并且其中有一些包含类的包,那么有没有一种方法可以自动地将它们全部包含在junit4测试套件中


(是的,您可以右键单击“测试”文件夹并以Junit身份运行,但有时会因为某些原因导致单个测试失败,而它们单独通过,因此我对该解决方案不太信任,而且测试套件是很好的玩物;-)。

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

[…]作为Junit运行,但有时由于某些原因,当单个测试通过[…]时,它们会失败


原因是有些测试没有正确地清理。这应该让你时刻保持警惕。尝试识别一对不能在一次“运行”中执行的测试,并仔细查看第一个测试。根据我自己的经验:尽快解决这些问题(又名:现在!),否则以后可能会遇到非常严重的问题(通常是QA人员的抱怨,比如“我的环境中的测试失败”)

我不同意Andreas\D的观点。这不是因为测试本身不干净。好的单元测试不需要在测试完成后进行清理。这是因为你的一些测试取决于另一个测试的结果。您需要更好的测试和/或设备

不过,我同意“现在就解决它们!”。当您的测试结果不可再现时,您会遇到严重问题


谢谢你的提醒!尽管我确实想知道为什么所有junit测试的测试套件都是绿色运行的,而右键单击/以junit的方式运行则不是这样:-((我今天遇到过这种情况)。对于一个番石榴爱好者,我制作了一个只有一个文件的番石榴类路径套件,请参见
import org.junit.extensions.cpsuite.ClasspathSuite;
import org.junit.runner.RunWith;
@RunWith(ClasspathSuite.class)
public class MySuite {}