在進行springboot單元測試的時候,發現如下錯誤。
1.在出現問題的單測歸屬模組的pom檔案中,找到所有模組依賴 #2.依序到各模組進行單元測試,定位問題模組java.lang.IllegalStateException: Could not load CacheAwareContextLoaderDelegate [class org. springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
在org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapptilootstrapUtils.createCacheAwareContextLoaderDelegate(Bootstraptil createBootstrapContext (BootstrapUtils.java:72)
位於org.springframework.test.context.TestContextManager.(TestContextManager.java:124)
位於org.springframework.test.context.124)
位於org.springframework.test.context.124)##J4atef54.50645545 月.Uni54 .java:151)
位於org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:142)
位於org.springamework.test.context. >(SpringRunner.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NsunativeConplector p. DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位於java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位於java.junit.interm. 104)
在org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
在org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder#:25 org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
在org.junit.runners.model.RunnerBuilder.safeRunnerForClass(Runnerjunit.runners.model.RunnerBuilder.safe requests.ClassRequest.getRunner(ClassRequest.java:33)
位於org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
位於com.intellij.junit4.JUnit4.TRunfRununfRunfRununf54.JUnit4 java:49)
位於com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
位於com。 java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
引起:org.springframework.beans.BeanInstantiationException:無法實例化[org.springamework work.beans.BeanInstantiationException:無法實例化[org.springamework work. .context.cache.DefaultCacheAwareContextLoaderDelegate]:無法解析的類別定義;嵌套異常是java.lang.NoSuchMethodError: org.springframework.core.KotlinDetector.isKotlinReflectPresent()Z
在org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.5:132 beans .BeanUtils.instantiateClass(BeanUtils.java:152)
at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:100)d lang .NoSuchMethodError: org.springframework.core.KotlinDetector.isKotlinReflectPresent()Z
在org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.springframework.beans.BeanUtils.instantiateClass(BeanUtils.javaans:171) 是BeanUtils .java:122)
... 22 more
一天以前單測是能跑的,初步預計是依賴的問題。由於專案間採用了多模組結構,模組的引用座標,因此需要逐一檢查每個模組是否有問題。
如下步驟
#幸運,問題的查找迅速發現,是由於spring-web的引用導致的錯誤。下面的引用註解掉了,並將相關程式碼進行引用替換。
以上是springboot單元測試依賴踩坑實例源碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!