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,获得错误堆栈,加快错误定位

原文地址:https://www.cnblogs.com/caer/p/8717699.html