@EnableAutoConfiguration(排除=.)关于Spring Boot 2.6.0中测试失败的问题 [英] @EnableAutoConfiguration(exclude =...) on tests failed in Spring Boot 2.6.0

查看:30
本文介绍了@EnableAutoConfiguration(排除=.)关于Spring Boot 2.6.0中测试失败的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将我的data-mongo示例项目升级到Spring Boot2.6.0。有一个测试旨在针对Testtainers运行,我还为其他测试包括了嵌入式mongo dep,因此我必须排除嵌入式mongo的自动配置,以确保此测试在docker/testtainers上运行。

以下配置在Spring Boot 2.5.6中运行良好


@DataMongoTest
@ContextConfiguration(initializers = {MongodbContainerInitializer.class})
@EnableAutoConfiguration(exclude = EmbeddedMongoAutoConfiguration.class)
@Slf4j
@ActiveProfiles("test")
public class PostRepositoryTest {}

但是在升级到Spring Boot 2.6.0并运行应用程序后,我得到了如下异常。

[           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: o
rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'embeddedMongoServer' defined in class path resource [org/springframework/boot/autoconfig
ure/mongo/embedded/EmbeddedMongoAutoConfiguration.class]: Unsatisfied dependency expressed through method 'embeddedMongoServer' parameter 0; nested exception is org.springframework.bea
ns.factory.BeanCreationException: Error creating bean with name 'embeddedMongoConfiguration' defined in class path resource [org/springframework/boot/autoconfigure/mongo/embedded/Embed
dedMongoAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [de.flap
doodle.embed.mongo.config.MongodConfig]: Factory method 'embeddedMongoConfiguration' threw exception; nested exception is java.lang.IllegalStateException: Set the spring.mongodb.embedd
ed.version property or define your own MongodConfig bean to use embedded MongoDB

显然,@EnableAutoConfiguration(exclude =...)在升级到Spring Boot 2.6.0时不会影响测试中的上下文。

更新:暂时解决了该问题,请参阅下面的答案。

推荐答案

在测试类上使用@ImportAutoConfiguration(exclude = ...)@DataMongoTest(excludeAutoConfiguration = ...)在升级到Spring Boot 2.6.0时克服此屏障。

@DataMongoTest
@ImportAutoConfiguration(exclude = EmbeddedMongoAutoConfiguration.class)
//other config are ommitted
public class PostRepositoryTest {}

//or 
@DataMongoTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
public class PostRepositoryTest {}

这篇关于@EnableAutoConfiguration(排除=.)关于Spring Boot 2.6.0中测试失败的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆