2009-07-16 147 views
19

有沒有辦法在Eclipse中快速方便地從幾個項目運行JUnit-Test?在Eclipse中快速運行多個項目的Junit測試

JUnit-Runner允許您定義一個包或所有包含測試執行的文件夾。

有沒有辦法做到這一點與Eclipse的幾個項目的測試? 最好是通過Junit-Runner。如果有一些方法可以通過Ant-job快速完成(所以不要依賴於之前用ant完成的構建),那也不錯。

回答

3

無法通過UI做。查看JUnit收集的最高級元素的擴展點是Project。我想你可以編寫一個插件爲工作集貢獻額外的上下文項/快捷方式,使工作集在包瀏覽器中設置頂級項目,並將您想要測試的項目集中在該工作集下面。 這樣做的問題是您在定義用於啓用/禁用「run as」貢獻的上下文規則時遇到問題,並且我不確定語義是否延伸到工作集。所以你必須編寫一些包裝來遍歷包含的項目並收集他們的測試類型。這似乎確實是一個有趣的小問題。我今天放學後可能會玩一玩。

另一個(稍微少一點)hacky的方式是在所有目標項目上設置項目依賴關係的另一個項目,然後使用鏈接的資源將所有測試類型引入新項目(在此之前我已發佈answer介紹如何鏈接不同項目的資源)。 當然,如果你這樣做,你也需要管理測試項目的依賴關係。

如果您爲每個項目創建TestSuite,併爲另一個引用所有項目套件的超級TestSuite創建TestSuite,則必須檢查是否包含每個測試都容易出錯。

如果您不喜歡使用插件或鏈接資源,那麼您最好使用Ant。

3

您可以定義一個獨立的項目,該項目依賴於其他項目,其中包含引用不同項目中單個測試或套件的套件。事情是這樣的:

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

實際上很容易在Eclipse中跨多個項目執行JUnit測試。看看Classpath Suite。這不是標準的JUnit跑步者,但你沒有提到這個要求來自哪裏,所以我不確定這是否會影響你。

所有使用信息是在該網頁上,但總結:

  1. 創建取決於你要測試的項目Eclipse項目。
  2. 編寫一個簡單的測試套件,包括一切:

    @RunWith(ClasspathSuite.class) 
    public class MySuite {} 
    
相關問題