Java 使用TestSuite跨包收集测试用例
当我们有许多JUnit4测试用例分散在许多包中时,将它们放在一个测试套件中“好”吗?像这样:Java 使用TestSuite跨包收集测试用例,java,testing,junit,Java,Testing,Junit,当我们有许多JUnit4测试用例分散在许多包中时,将它们放在一个测试套件中“好”吗?像这样: package my.package.tests; @RunWith(Suite.class) @Suite.SuiteClasses({ my.package.a.testMyService.class, my.package.b.testMyBackend.class, ... }) public class AllTests {} 或者,我们可以依靠它来管理我们的测试
package my.package.tests;
@RunWith(Suite.class)
@Suite.SuiteClasses({
my.package.a.testMyService.class,
my.package.b.testMyBackend.class,
...
})
public class AllTests {}
或者,我们可以依靠它来管理我们的测试用例吗?就个人而言,我不使用测试套件,除非在非常特定的情况下。我更喜欢使用通过反射查找测试用例的运行程序,例如ant junit任务或maven surefire/failsafe。通过这种方式,我不会忘记向套件中添加测试,然后在两周后发现测试失败,或者有人“临时”删除了具有相同结果的测试用例
我将测试套件用于需要对顺序进行细粒度控制或需要反复运行相同测试的情况。保持简单是件好事。我想控制小粒度测试用例的原因是有时需要它。例如,一个测试用例连接到一个远程数据库,该数据库本身不稳定且正在测试中。作为另一个例子,一个测试用例将运行10分钟。