2013-06-27 61 views
6

我很可能会失去主意,但今天早上当我升级到Eclipse Kepler时,我试图同时运行多个Eclipse项目的单元测试并失败。我选择了多个项目,打开右键单击菜单,“Run as ...”选项消失。从Eclipse中的多个项目运行JUnit测试

“该死的开普勒!”我想,并启动了我的旧Juno安装,以说服自己行为发生了变化。然而,它也没有在那里工作。

我现在质疑我是否真的有可能。 Manyother堆栈溢出问题和其他sites表明这是一个困难的,如果不是不可能的任务。不过,我很确定我最近在做这件事,这让我感到有点慌乱。

所以......这甚至有可能在开普勒或朱诺?任何人都可以提出一个可能启用该功能的流行插件(我错误地认为它是默认行为)?

背景:我有一个通过m2e管理的多模块Maven项目,期望我可以选择几个项目并运行所有的单元测试

+0

你还有运行配置吗?如果是这样,只需为它创建一个配置并运行它。 – JREN

+0

@JREN对不起,是的,“运行配置...”选项仍然存在。但是如果我走这条路线,我只能运行一个项目的测试,而不是多个项目。 –

+0

应该有一个单选按钮可用,指出“在所选项目,软件包或源文件夹中运行所有测试:”如果您选择了2个项目,它应该运行所有的单元测试。它至少适用于我: - /。我正在使用Eclipse Juno – JREN

回答

1

您不能在Eclipse中为多个项目运行测试,至少使用普通运行程序。有,但是,有多种选择:

  1. 创建如果你想每次保存运行测试它运行一切
  2. 一只蚂蚁/ Maven的脚本,您可以使用Infinitest

从Infinitest的网站:

Infinitest是Eclipse和IntelliJ一个连续测试插件。每次对源代码进行更改时,Infinitest都会运行可能因这些更改而失败的所有测试。

Infinitest可以运行所有项目中的所有测试。

1

如果是你,而不是使用上下文菜单,使用键盘快捷键(默认= Alt-Shift-XT),你会得到下面的对话框:

enter image description here

这是一个关于为什么Eclipse的提示没有在菜单中显示选项 - 它认为没有测试。这显然是错误的。

挖通过Eclipse source code for JUnitLaunchShortcut(160-191线),我发现这一点:

private void launch(Object[] elements, String mode) { 
    try { 
     IJavaElement elementToLaunch= null; 

     if (elements.length == 1) { 
... 
     } 
     if (elementToLaunch == null) { 
      showNoTestsFoundDialog(); 
      return; 
     } 

它只有当你选择只有一个测试类的工作。

的菜单选项可见性由org.eclipse.jdt.junit插件配置(plugin.xml)控制,并且具有相同的问题(线221-234):

<contextualLaunch> 
    <enablement> 
     <with variable="selection"> 
      <count value="1"/> 
      <iterate> 
       <adapt type="org.eclipse.jdt.core.IJavaElement"> 
        <test property="org.eclipse.jdt.core.isInJavaProject"/> 
        <test property="org.eclipse.jdt.core.hasTypeOnClasspath" value="junit.framework.Test"/> 
        <test property="org.eclipse.jdt.junit.canLaunchAsJUnit" forcePluginActivation="true"/> 
       </adapt> 
      </iterate> 
     </with> 
    </enablement> 
</contextualLaunch> 

<count value="1"/>位在开始用作选择器,它意味着同样的事情:你必须有正好选择了一个项目,否则菜单项不会显示出来。

我想我们已经找到了问题:)

我还检查文件历史这两个,和他们没有被改变,因为2006年9月所以,如果你管理一个较新的版本来做到这一点你最有可能安装了某种插件,可以让你做到这一点。

相关问题