Maison  >  Article  >  Java  >  Le test unitaire Springboot dépend de l'analyse du code source de l'exemple de fosse

Le test unitaire Springboot dépend de l'analyse du code source de l'exemple de fosse

王林
王林avant
2023-05-23 19:01:291303parcourir

springboot单元测试依赖踩坑

在进行springboot 单元测试的时候,发现如下错误。

# 🎜🎜#
java.lang.IllegalStateException : impossible charger CacheAwareContextLoaderDelegate [class org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]

    sur org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:103)#🎜 🎜#    à l'org. springframework.test.context.BootstrapUtils.createBootstrapContext(BootstrapUtils.java:72)

    sur org.springframework.test.context.TestContextManager.(TestContextManager.java:124)
    sur org.springframework .test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:151)
    à org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:142)#🎜 🎜#    à org.springframework.test.context.junit4.SpringRunner.(SpringRunner.java:49)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl. newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)#🎜 🎜#    sur org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    sur org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    sur org .junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    sur org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    sur org.junit.runners .model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    à org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
    à org.junit.internal.requests.FilterRequest .getRunner(FilterRequest.java:36)
    à com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:49)
    à com.intellij.rt.execution.junit.IdeaTestRunner$Re tourter.startRunnerWithArgs (IdeaTestRunner.java:47)
    sur com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    sur com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70)
Causé par : org.springframework.beans.BeanInstantiationException : échec de l'instanciation de [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] : définition de classe insoluble ; L'exception imbriquée est java.lang.NoSuchMethodError : org.springframework.core.KotlinDetector.isKotlinReflectPresent()Z
    à org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:132)
    à org.springframework .beans.BeanUtils.instantiateClass(BeanUtils.java:152)
    at org.springframework.test.context.BootstrapUtils.createCacheAwareContextLoaderDelegate(BootstrapUtils.java:100)
    ... 20 de plus
Caused par : java.lang.NoSuchMethodError : org.springframework.core.KotlinDetector.isKotlinReflectPresent()Z
    à org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:171)
    à org.springframework. beans.BeanUtils.instantiateClass(BeanUtils.java:122)
    ... 22 de plus


一天以前单测是能跑的,初步预计是依赖的问题。由于模块间的引用较多,因此需要逐一检查每个模块是否存在问题。

如下步骤

#🎜🎜 #1. 在出现问题的单测归属模块的pom文件中,找到所有模块间依赖

  • 2. 依次到各个模块进行单元测试,定位问题模块

  • 3. 发现问题模块 carrier-api

    # 🎜🎜#

  • #🎜 🎜#再往下深入,检查carrier-api依赖
幸运的是,问题的根源迅是由于spring-web的引用导致的错误。将该引用注释掉,并且将相关代码进行引用替换。

Problème résolu

Le test unitaire Springboot dépend de lanalyse du code source de lexemple de fosse

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer