2011-12-09 25 views
3

剛剛發生了一個奇怪的錯誤。使用JUnit和Maven 3.0.3處理項目我在我的test/src/java文件夾中創建了一個測試類 - ClassifierUtilTest.java@Test -annotated方法和東西,以及兩個工具類,僅供在測試環境中使用env一個用於繞過私有可視範圍的靜態方法很少,另一個用於測試接口的模擬)。如何告訴Maven2不要在測試源文件夾中測試非@測試註釋的類?

它在Maven 3.0.3(mvn test)和Eclipse 3.7(以/ JUnit測試運行)下工作良好,但是當其他人嘗試'mvn test'與Maven 2.2.1時失敗。顯然,它試圖將這些util類作爲測試類來對待,並由於'沒有@Test -annotated方法'和'多個構造函數'而失敗。

這不是JUnit錯誤(至少它不應該是,maven依賴關係是相同的,junit:junit:4.9),所以它似乎嚴格地是maven或maven-surefire-plugin錯誤。我想知道是否有一些廣爲人知的Maven 2.2.1的解決方法來解決這個問題?

+0

你能給抄錄行爲的項目的例子嗎? – khmarbaise

+0

您的測試實用程序類名稱是以「Test」開始還是結束? – korifey

回答

12

maven-surefire-plugin通過default運行的所有類的有Test前綴或後綴(如你ClassifierUtilTest)和TestCase後綴。只需將名稱更改爲ClassifierTestUtil即可。

您也可以排除某些文件/目錄中pom.xml,看到Inclusions and Exclusions of Tests

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.11</version> 
    <configuration> 
    <excludes> 
     <exclude>**/ClassifierUtilTest.java</exclude> 
    </excludes> 
    </configuration> 
</plugin> 
+0

這很好,謝謝你的快速回答。 – r3mbol

相關問題