JUnit initializationError的解决

本文探讨了Maven项目中因文件命名导致的单测执行错误问题,详细介绍了maven-surefire-plugin如何误将非测试类当作测试用例执行,并提供了通过配置排除特定文件或重命名文件的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##经过查找后发现可能是引入的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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值