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-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南