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