现在遇到的问题是,A 模块依赖于 B 模块,而 B 模块嵌入的东西太多啦,现在的需求是 跑 A 单元测试的时候,属于自己业务代码,跟 B 没关系,能不能不运行 B 模块的代码,只提供编译,不然每次跑都太麻烦啦,用了 maven scope runtime,还是会运行 b
1
Jrue0011 2020-09-04 09:40:56 +08:00
测试类上用 Spring 相关的注解控制引入的配置和组件
|
3
zhazi 2020-09-04 10:07:44 +08:00
我觉得你说的是集成测试
如果 B 依赖是个 autoconfig 可以是用 exclude 排除掉 如果不是 autoconfig,那么生命周期应该是你自己控制的。 |
4
Jrue0011 2020-09-04 10:44:31 +08:00 1
@Jrue0011 前面说的可能有点不清楚
如果 A 、B 都是 Spring 管理,用到了各种 SpringBoot 自动配置以及额外的手动配置的话,需要根据单元测试内容排除掉非必要的 SpringBoot 自动配置以及手动配置,获得最小的启动环境。 注解只是在单元测试代码里进行环境配置的方法,怎么用说起来就说不清楚了,建议参考官方文档。 https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/testing.html#testing |