##經過查找後發現可能是引入的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.