有没有办法在 Eclipse 中方便地从多个项目中快速运行 JUnit-Tests?
JUnit-Runner 允许您定义一个包或一个文件夹,在其中执行所有包含的测试。
有没有办法通过 Eclipse 中的几个项目的测试来做到这一点?最好是通过 Junit-Runner。如果有某种方法可以通过 Ant-job 快速获得它(所以不依赖于之前使用 ant 的完整构建),那也很好。
有没有办法在 Eclipse 中方便地从多个项目中快速运行 JUnit-Tests?
JUnit-Runner 允许您定义一个包或一个文件夹,在其中执行所有包含的测试。
有没有办法通过 Eclipse 中的几个项目的测试来做到这一点?最好是通过 Junit-Runner。如果有某种方法可以通过 Ant-job 快速获得它(所以不依赖于之前使用 ant 的完整构建),那也很好。
在 Eclipse 中跨多个项目执行 JUnit 测试实际上非常容易。看看Classpath Suite。这不是标准的 JUnit 跑步者,但你没有提到这个要求来自哪里,所以我不确定这是否会影响你。
所有使用信息都在该页面上,但总结一下:
编写一个简单的测试套件,包括所有内容:
@RunWith(ClasspathSuite.class)
public class MySuite {}
你不能通过 UI 来做到这一点。查看 JUnit 将为其收集的最高级别元素是项目的扩展点。我想你可以编写一个插件来为工作集贡献一个额外的上下文项/快捷方式,使工作集成为包资源管理器中的顶级项目,并将你想要测试的项目组合在该工作集之下。这样做的问题是你很难定义启用/禁用“运行方式”贡献的上下文规则,我不确定语义是否扩展到工作集。因此,您必须编写某种包装器来迭代包含的项目并收集它们的测试类型。这似乎是一个有趣的小问题。今天放学后我可能会和它一起玩。
另一种(稍微少一点)hacky 方法是在所有目标项目上设置另一个项目依赖项,然后使用链接资源将所有测试类型带入新项目(我之前发布了一个答案,描述了如何链接跨项目的来源)。当然,如果您这样做,您还需要管理测试项目的依赖关系。
如果您为每个项目创建一个 TestSuite 和另一个引用所有项目套件的 uber TestSuite,则必须检查包含的每个测试,这很容易出错。
如果您不喜欢使用插件或链接资源,那么您最好使用 Ant。
您可以定义一个依赖于其他项目的单独项目,其中包含一个套件,该套件引用来自不同项目的单个测试或套件。像这样的东西:
@RunWith(Suite.class)
@Suite.SuiteClasses( { FirstProjectSuite.class, SecondProjectSuite.class} )
public class AllSuites { }
我不确定你不能从 UI 中做到这一点,但即使你没有使用 ant 构建插件,也可以从 ant 中做到这一点。尽管如此,这种方法并不是那么简单,但是一旦设置好,事情就很酷了;o)
在这里查看更多信息:
http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html