junit4 --由于日志死循环造成的initializatinError : Method 'initalizationError' not found
pom文件添加新依赖后,junit启动失败,比较坑爹的是错误堆栈没有任何信息

这是由于使用了SpringJUnit4ClassRunner,在执行获得logger时,陷入死循环

日志采用了log4j-over-slf4j实现,在Logger和其父类Category之间循环调用,造成堆栈异常


死循环,挂了
解决办法是排除模块中的日志实现模块
<dependency>
<groupId>com.tyyd</groupId>
<artifactId>acws.core</artifactId>
<version>1.3.8</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<!-- 将新依赖的日志依赖排除 -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
重新打包部署,一切恢复正常!
clean install -DskipTests -Pdev

在没用错误堆栈信息的时候,定位错误非常麻烦,可以使用其父类BlockJUnit4ClassRunner,获得错误堆栈,加快错误定位



浙公网安备 33010602011771号