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

问题描述 投票:8回答:3

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

MyProject
  base/src/impl
  base/src/test
  common/src/api
  common/src/test
  common/src/junit

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

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

例如,通过Ant与junit搜索模式可以很好地工作:

<include name="**/src/junit" />

但是,我希望能够从Eclipse获得完全相同的运行配置,而不必调用Ant。由于已经有很多项目,程序包和成千上万的测试类,因此我正在寻找一种“懒惰”的方式来完成此任务,这意味着不必更改项目结构或维护复杂的测试套件。

[我尝试过的一种方法是使用ClasspathSuite所使用的org.springframework.core.io.support.PathMatchingResourcePatternResolver,但是在classpath中寻找资源总是在单个类位置中查看合并的源文件夹,因此我无法再按我想要的级别进行过滤去做。

我正在寻找两种方法:

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

谢谢!

java eclipse junit
3个回答
5
投票

您可以右键单击源文件夹,然后选择运行方式> JUnit Test。

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


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

“运行配置”

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

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

请参阅Eclipse帮助的Writing and Running JUnit tests上的“定制测试配置”。


[Same page描述如何使用“新建测试套件”向导创建自定义测试套件。

“新的测试套件向导”“ >>


2
投票

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


0
投票

我知道这很旧了,但是为了后代-JUnit 5现在具有可用于执行此操作的标签(请参见https://junit.org/junit5/docs/current/user-guide/#writing-tests-tagging-and-filtering)。您可以使用特定标签来标记所有集成测试,然后在测试启动配置中可以使用该标签排除测试(反之亦然-标记所有纯单元测试并仅包括那些)。

© www.soinside.com 2019 - 2024. All rights reserved.