JUnit initializationError的解決

##經過查找後發現可能是引入的jar包衝突或者找不到的原因。因此檢查pom.xml文件,是否存在衝突。



還有一個原因,添加了surefire插件來控制單測執行時,有時候可能會將並無單測的以Test命名的java文件當作case來執行。

maven的default生命週期的test階段與maven-surefire-plugin插件的test插件目標內置綁定。默認情況下,maven-surefire-plugin的test目標會自動執行測試源碼路徑(默認:src/test/java)下的所有符合一組命名規則的測試類。該命名規則如下:

1. **/Test*</span>.java 任何子目錄下所有命名以Test開頭的java類 

2. Test.java 任何子目錄下所有命名以Test結尾的java類 

3. TestCase.java 任何子目錄下所有命名以TestCase結尾的java類

例如,有一個名爲TestUtils.java的類,僅提供供Test使用的方法,而本身並不是unit test case。

使用surefire來執行的時候,會把TestUtils.java同樣當成一個test case來執行,

因此就會出現InitializationError.


解決方法:

1. surefire中排除改文件:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <version>2.5</version>
   <configuration>
      <testFailureIgnore>true</testFailureIgnore>
      <excludes>
         <exclude>**/TestUtils.java</exclude>
      </excludes>
   </configuration>
</plugin>

2. 重命名TestUtils.java爲ProjectUtils.java.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章