2013-06-27 62 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月所以,如果你管理一個較新的版本來做到這一點你最有可能安裝了某種插件,可以讓你做到這一點。

相關問題