Java单元测试启动踩过的坑
2022/3/3 1:17:33
本文主要是介绍Java单元测试启动踩过的坑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在某个springboot项目用junit做单元测试时,调用启动类时总是报nosuchbeandefinition错误,查看日志发现是rpc-client.xml文件中的dubbo引用类未注入spring容器,怀疑是rpc-client.xml文件未被识别。一开始以为是配置@ImportResource(classpath:rpc-client.xml)的组件类未被注入,后面通过在该组件类中生成Bean对象,并在生成Bean的方法中打断点,发现程序能够到达断点,说明该组件类是被成功注入的,后面以为文件的路径没有写对,遂将classpath改成base/rpc-client.xml(因为xml文件放在resources/base文件夹下),结果运行时反而报找不到该路径的错误。后面通过别人的博客找到答案:
使用Gradle test任务执行测试类时,会优先使用test模块的资源文件,对于main模块与test模块均存在的同名资源文件,会使用test模块中的资源文件;对于仅在main模块中存在的同名资源文件,会使用main模块中的资源文件。
因为项目中main模块和test模块都有resources/base/rpc-client.xml文件,其中main模块中的rpc-client.xml文件中有dubbo引用类的声明,而test模块中的rpc-client.xml的内容是空的,没有dubbo引用类的声明,导致Test任务启动时,使用了空的test模块的资源文件,因此没有dubbo类注入Spring容器,因此也就找不到bean定义了。事实也是如此,当删除了test模块中的rpc-client.xml空文件后,执行Test任务时启动类就能正常运行不再报错了。
参考:https://blog.csdn.net/a82514921/article/details/108029162
这篇关于Java单元测试启动踩过的坑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解