2012-04-30 73 views
2

我聲明瞭與EasyMock的捆綁powermock測試依賴。Maven的測試依賴沒有被發現

<dependency> 
    <groupId>org.powermock</groupId> 
    <artifactId>powermock-easymock-release-full</artifactId> 
    <version>1.4.12</version> 
    <type>pom</type> 
    <scope>test</scope> 
</dependency> 

當我運行mvn test,測試SRC聲稱能夠找到org.powermock但不org.easymock,儘管它被包含在上面的依賴中。

我想知道這是否是由於測試範圍的傳遞性問題,所以我試着編譯範圍也是如此(文檔http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html提到編譯依賴關係在測試時間可用)沒有任何運氣。

我也試過用捆綁的jar而不是pom,無濟於事。我意識到我可以單獨聲明依賴關係(即單獨依賴powermock和easymock),但爲了我的目的,我僅限於擁有一個依賴關係,包括所有必需的測試庫。

+0

您是否檢查過您正在使用的公共存儲庫以查看是否存在缺失的依賴關係(在您的情況下爲org.easymock)?我有一個問題,依賴庫已被更新爲包含尚未發佈到公共目錄的依賴關係,然後必須去找到並將它們添加到我的本地/我們的內部存儲庫。 – amaidment

+0

好主意,但它似乎稱爲powermock-api-easymock,其中調用easymock(org.easymock),這似乎都存在於Maven Central上。 – Rhys

回答

2

追溯到powermock parent pom我發現easymock依賴項標記爲「提供」。

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>org.easymock</groupId> 
     <artifactId>easymock</artifactId> 
     <version>3.1</version> 
     <scope>provided</scope> 
    </dependency> 

看起來像powermock期待其客戶(你在這種情況下)提供easymock罐子。

+0

啊,我認爲我的目標是找出是否有任何中央依賴項會將所有內容都拉進來。謝謝。 – Rhys

1

根據powermock-easymock-release-full POM,它不依賴於easymock(即easymock不會出現在powermock-easymock-release-full依賴關係中)。所以你必須添加另一個依賴easymock,依賴於你正在使用的測試引擎(JUnit或TestNG):http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.powermock%22%20AND%20%22easymock%22

+0

但它確實取決於powermock-api-easymock,它本身取決於org.easymock:easymock,應該不會一樣好嗎? – Rhys

+0

是的,對不起,你是對的。你可以添加錯誤輸出嗎? –

+0

嗨,這真的只是「包org.easymock不存在」和「找不到符號」 - 如果沒有任何亮點,我可以稍後添加更詳細的日誌。我想知道如果easymock不會在類路徑中結束 - 我沒有看到easymock jar,我有點期待 – Rhys