在Eclipse中快速方便地从多个项目中运行Junit-Tests

时间:2009-07-16 13:12:35

标签: java eclipse ant junit eclipse-3.5

有没有办法在Eclipse中快速方便地从几个项目运行JUnit-Tests?

JUnit-Runner允许您定义包含所有包含的测试的包或文件夹。

有没有办法在Eclipse内部的几个项目中进行测试? 最好是通过Junit-Runner。如果有一些方法可以通过Ant-job快速获取它(所以不依赖于之前使用ant的完整构建),那也很好。

4 个答案:

答案 0 :(得分:8)

从Eclipse中跨多个项目执行JUnit测试实际上非常容易。看看Classpath Suite。这不是标准的JUnit跑步者,但你没有提到这个要求来自哪里,所以我不确定这是否会影响你。

所有使用信息都在该页面上,但总结如下:

  1. 根据您要测试的所有项目创建Eclipse项目。
  2. 编写一个包含所有内容的简单测试套件:

    @RunWith(ClasspathSuite.class)  
    public class MySuite {}
    

答案 1 :(得分:4)

您无法通过用户界面完成此操作。查看扩展点,JUnit将收集的最高级元素是项目。我想你可以编写一个插件来为工作集提供额外的上下文项/快捷方式,make work设置包浏览器中的顶级项,并将你想要在该工作集下面一起测试的项目分组。 执行此操作的问题是您无法定义启用/禁用“运行方式”贡献的上下文规则,并且我不确定语义是否扩展到工作集。因此,您必须编写某种包装器来迭代包含的项目并收集它们的测试类型。这似乎是一个有趣的小问题。我今天放学后可能会玩它。

另一种(略少)hacky方式是在所有目标项目上设置另一个项目依赖项目,然后使用链接资源将所有测试类型带入新项目(我发布了{{3}在此之前描述了如何跨项目链接源)。 当然,如果您这样做,您还需要管理测试项目的依赖项。

如果为每个项目和另一个引用所有项目套件的超级TestSuite创建TestSuite,则必须检查是否包含每个测试,这很容易出错。

如果你不喜欢使用插件或链接资源,你可能最好使用Ant。

答案 2 :(得分:3)

您可以定义一个独立的项目,该项目依赖于其他项目,其中包含引用来自不同项目的各个测试或套件的套件。像这样:

@RunWith(Suite.class)
@Suite.SuiteClasses( { FirstProjectSuite.class, SecondProjectSuite.class} )
public class AllSuites { }

答案 3 :(得分:0)

我不确定你是不是可以通过用户界面进行操作,但是从蚂蚁开始,即使你没有使用ant构建插件也是可能的。然而,这种方法并非如此微不足道,但一旦建立起来,事情就会变得很酷; o)

点击此处查看更多信息:

http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html