代码之家  ›  专栏  ›  技术社区  ›  Ansgar

在Eclipse中方便快捷地从几个项目运行JUnit测试

  •  20
  • Ansgar  · 技术社区  · 15 年前

    在Eclipse中,有没有一种方法可以方便快捷地从几个项目运行JUnit测试?

    JUnit运行程序允许您定义一个包或文件夹,在其中执行所有包含的测试。

    对于Eclipse内的几个项目的测试,有没有一种方法可以做到这一点? 最好是通过JUnit Runner。如果有某种方法可以通过一个Ant作业快速实现它(所以以前不依赖于一个完整的Ant构建),那么这也很好。

    4 回复  |  直到 11 年前
        1
  •  4
  •   Community rcollyer    7 年前

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

    另一种(稍微少一点)黑客方法是在所有目标项目上建立另一个具有项目依赖性的项目,然后使用链接的资源将所有测试类型引入新项目(我已经发布了一个 answer 之前描述了如何在项目之间链接源)。 当然,如果这样做,您还需要管理测试项目的依赖性。

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

    如果你不想和插件或链接资源混在一起,你最好使用Ant。

        2
  •  8
  •   exo_cw SyntaxT3rr0r    11 年前

    实际上,在Eclipse中的多个项目之间执行JUnit测试非常容易。看看 Classpath Suite .标准Junit Runner没有,但您没有提到这一要求来自何处,因此我不确定这是否会影响您。

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

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

      @RunWith(ClasspathSuite.class)  
      public class MySuite {}
      
        3
  •  3
  •   Fabian Steeg    15 年前

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

    @RunWith(Suite.class)
    @Suite.SuiteClasses( { FirstProjectSuite.class, SecondProjectSuite.class} )
    public class AllSuites { }
    
        4
  •  0
  •   Manuel Selva    15 年前

    我不确定你不能从用户界面做到这一点,但是从Ant来说,即使你不使用Ant构建插件也是可能的。然而,这种方法并不那么简单,但一旦建立起来,事情就很酷了;o)

    查看此处了解更多信息:

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

    推荐文章