查找子包中的所有测试

时间:2015-09-18 10:05:50

标签: java eclipse unit-testing junit4

当我尝试运行JUnit测试时,我收到错误消息

  

没有测试跑步者和JUnit 4'

的测试结果

因此我尝试了

的解决方案

但是,在我的情况下,差异似乎是我指定要在包级别而不是文件夹级别上运行的测试。

如果我指定一个直接包含测试类的包(例如com.example.tests.smoketests),则运行JUnit测试是有效的,但如果指定了更高级别的包(例如com.example.tests)则不起作用。

如果我在com.example.tests中定义测试,则会找到并运行。

有没有办法让Eclipse / JUnit在包和所有子包中找到测试?

1 个答案:

答案 0 :(得分:3)

开箱即用,没有什么可以帮到你的。您可以使用Suite注释在JUnit4中实现此目标,但这仍然需要您为每个包手动定义套件测试,然后将它们全部包含在聚合套件测试中(例如它们递归调用子套件)。

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import a.sub.package.AnotherSuiteTest.class;

@RunWith(Suite.class)
@Suite.SuiteClasses({
   PackageLocalTestClass1.class,
   PackageLocalTestClass2.class,
   AnotherSuiteTest.class
})
public class JunitTestSuite {   
}

我已经开始构建自己的实用程序类,然后创建整个测试系列。 This article提供了类似的效用。