请教一下, springboot 单元测试启动报错? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SZhan
V2EX    Java

请教一下, springboot 单元测试启动报错?

  •  
  •   SZhan 2023-05-10 11:42:29 +08:00 3125 次点击
    这是一个创建于 951 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直无法在项目中引入单元测试,以前使用其他框架时没遇过这个问题,现在使用的这套框架使用单元测试一直无法调用 bean 中的方法进行测试,报错信息:Caused by: java.lang.ClassCastException: org.springframework.core.env.StandardEnvironment cannot be cast to org.springframework.web.context.support.StandardServletEnvironment ,这个报错没搜到啥解决办法,想麻烦大佬们,是哪里配置错了,还是框架自身不支持的原因么https://imgur.com/1ISX7FV
    https://imgur.com/undefined

    PS: 尝试过 @SpringBootTest 注解指定启动类,也还是报这个错,麻烦大佬们帮帮忙,感激不尽!
    26 条回复    2024-09-30 11:20:26 +08:00
    BigR
        1
    BigR  
       2023-05-10 13:41:41 +08:00
    版本冲突了吧
    wolfie
        2
    wolfie  
       2023-05-10 13:53:41 +08:00
    感觉是版本问题 + 1

    去掉 @RunWith ,Test 注解改用 org.junit.jupiter.api.Test 试试?
    SZhan
        3
    SZhan  
    OP
       2023-05-10 14:34:47 +08:00
    感谢两位大佬回复 @lncywlc @wolfie 尝试去掉 @RunWith 改了 test 注解引的包,还是报一样的错误。版本冲突是什么意思呢,junit 版本是 4 的
    SZhan
        4
    SZhan  
    OP
       2023-05-10 14:36:14 +08:00
    wolfie
        5
    wolfie  
       2023-05-10 14:56:15 +08:00
    dependencyManagement 里面用 org.springframework.boot:spring-boot-dependencies:${spring-boot-version}

    或者 手动找 pom 文件
    https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.6.7/

    以 boot 为基准,统一一下组件版本看看。
    LeegoYih
        6
    LeegoYih  
       2023-05-10 15:00:30 +08:00
    跟 Junit 无关,大概率是其他依赖引入了不同版本的 Spring 导致冲突
    4lieS
        7
    4lieS  
       2023-05-10 16:07:54 +08:00   1
    @SZhan 版本冲突就是比如有两个依赖 A 和 B ,他们自身同时又依赖了 C ,但是 A 依赖的是 C1.0.0 ,B 依赖的是 C2.0.0 。由于项目中最终只能使用一个依赖,这就会导致 A 或 B 其中一个编译或运行时可能会出现问题,最好还是要统一下版本。
    bugmakerxs
        8
    bugmakerxs  
       2023-05-10 16:21:48 +08:00
    mvn dependency:tree 看看依赖项。
    SZhan
        9
    SZhan  
    OP
       2023-05-10 16:54:55 +08:00
    感谢楼上各位老哥的指导,目前思路往依赖项冲突上排查,项目里面太多依赖,打算试试 maven-helper 插件辅助排查下
    BigR
        10
    BigR  
       2023-05-10 17:55:18 +08:00
    @SZhan junit 的版本要和 springboot 的版本对应。同时需要排除一下其它依赖引入的 junit 依赖包。
    Kaiv2
        11
    Kaiv2  
       2023-05-10 17:59:59 +08:00
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = XXXApplication.class, webEnvirOnment= WebEnvironment.RANDOM_PORT)
    Kaiv2
        12
    Kaiv2  
       2023-05-10 18:01:50 +08:00
    junit4 注解是这个 org.junit.Test
    MichaelGzy
        13
    MichaelGzy  
       2023-05-11 08:45:45 +08:00
    3.0.5?
    SZhan
        14
    SZhan  
    OP
       2023-05-11 09:41:52 +08:00
    @Kaiv2 我一开始 就是按您这么写的,结果报上面那样的错了。然后才换成了另一个 test 注解
    SZhan
        15
    SZhan  
    OP
       2023-05-11 09:42:16 +08:00
    @MichaelGzy boot 版本么? springboot 是 2.2.5 的
    SZhan
        16
    SZhan  
    OP
       2023-05-11 09:47:35 +08:00

    大佬们,我排了一下 pom 文件,目前跟 junit 有关的冲突就是这些,项目是 springboot 2.2.5 对应的 junit 版本是 4.1.2 junit-jupiter 版本 5.5.2 跟官方一致的应该是
    SZhan
        17
    SZhan  
    OP
       2023-05-11 09:49:38 +08:00
    @SZhan 。。。。发错图片了 不能删除回复的么!!完蛋
    SZhan
        18
    SZhan  
    OP
       2023-05-11 09:50:24 +08:00
    SZhan
        19
    SZhan  
    OP
       2023-05-11 09:59:36 +08:00
    大佬们,看了下有冲突的依赖,跟 junit 相关的就上面图里的一个,这个项目 boot 版本 2.2.5 ,junit 版本是 4.1.2 (后来尝试注掉只保留 junit-jupiter5 也不行) junit-jupiter 版本是 5.5.2 跟官方要求的依赖版本应该是没有冲突。
    这个框架是电信自研的,有问题就不太好解决。。。
    litchinn
        20
    litchinn  
       2023-05-11 10:41:07 +08:00
    电信自研可还行
    我比较倾向 6 楼的说法,可能是由于引用了其他依赖包含不同 spring 版本导致的冲突
    idea 可以点开 maven 拓扑图搜索看看有没有不同版本,pom 文件里 Ctrl+Alt+Shift+U
    loccd
        21
    loccd  
       2023-05-12 10:50:16 +08:00
    你把单元测试类的名字 Test,改成其他名字再试试,之前碰到过
    hosty
        22
    hosty  
       2024-09-14 16:54:38 +08:00
    老哥解决了嘛,今天也遇到了,nnd biyi 平台可真是一坨答辩
    SZhan
        23
    SZhan  
    OP
       2024-09-18 14:25:04 +08:00
    @hosty 就是他们框架的 bug, 太恶心了。我潜水他们那个交流群很久,才看到他们发出来方案。你把这个文件加到 com.ctsi.ssdc.handle 下就行,它会覆盖到框架里的同名文件。https://drive.google.com/file/d/17z_cgvEfZ8P4B9YGHXw6EuvbyxGdAIYF/view?usp=sharing
    hosty
        24
    hosty  
       2024-09-23 17:02:01 +08:00
    @SZhan 感谢老哥
    SZhan
        25
    SZhan  
    OP
       2024-09-24 16:04:51 +08:00
    @hosty 保存了哈?我先撤链接了 公司查安全查的严,涉及源码泄露了
    hosty
        26
    hosty  
       2024-09-30 11:20:26 +08:00
    @SZhan 保存过了,感谢!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3207 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:45 PVG 19:45 LAX 03:45 JFK 06:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86