如何过滤源路径从eclipse调用的JUNIT测试

Mar*_*tin 8 java eclipse junit

假设我在Eclips项目中有一组源文件夹:

MyProject
  base/src/impl
  base/src/test
  common/src/api
  common/src/test
  common/src/junit
Run Code Online (Sandbox Code Playgroud)

请注意,这些不是包,它们是源文件夹,每个包内都有一个包层次结构,它们可以是相同的.假设我在base/src/impl文件夹中有一个类com.foo.myproject.DoSomething,我可能在base/src/Test文件夹中有一个名为com.foo.myproject.DoSomethingTest的Test,也许是com.foo .myproject.DoSomethingUnitTest在同一包层次结构下的另一个源文件夹中.

我需要做的是运行某些源文件夹下的所有测试.也许所有这些都在junit文件夹中,但没有来自测试文件夹.

这可以通过带有junit搜索模式的Ant工作得很好,例如:

<include name="**/src/junit" />
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够从Eclipse获得完全相同的运行配置,而无需调用Ant.由于已经有很多项目,包和数千个测试类,我正在寻找一种"懒惰"的方式来完成这项工作,这意味着,无需更改项目结构或必须保留复杂的测试套件.

我尝试过的一种方法是使用org.springframework.core.io.support.PathMatchingResourcePatternResolverClasspathSuite 使用的方法,但是在classpath中查找资源总是在一个单独的类位置查看合并的源文件夹,所以我无法在我打算这样做的级别进行过滤.

我正在寻找两种方法:

1. Filter using some TestSuite
2. Filter using some JUNIT Runner Plugin in Eclipse (is there any that can do what I need?)
Run Code Online (Sandbox Code Playgroud)

谢谢!

flu*_*lup 5

您可以右键单击源文件夹,然后选择Run As> JUnit Test.

这将仅在此源文件夹中运行单元测试.


或者,在编辑"运行配置"时,您可以选择

运行配置

Run all tests in the selected project, package or source folder:

按,search然后选择要运行单元测试的文件夹.

请参阅编写和运行 Eclipse帮助的JUnit测试中的"自定义测试配置" .


同一页面介绍了如何使用New Test Suite向导创建自定义Test Suite.

新测试套件向导


And*_*i I 2

这是一个似乎可以满足您需求的项目:

类路径套件

查找“Classpath Property Annotation”以设置进行测试的文件夹。

此外,如果您的测试类确实按其接缝命名(所有单元测试类都有后缀 UnitTest),那么您也可以使用注释@ClassnameFilters