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.


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