问题描述
我正在使用 Flapdoodle's Embedded Mongo 在我的 Spring Boot 应用程序上运行集成测试。
我有如下测试:
@SpringBoottest(classes = Application.class)
@TestMethodorder(OrderAnnotation.class)
class IntegrationTests {
@BeforeAll
static void setup() throws Exception {
String ip = "localhost";
int port = 65000;
IMongodConfig mongodConfig = new MongodConfigBuilder().version(Version.Main.PRODUCTION)
.net(new Net(ip,port,Network.localhostIsIPv6())).build();
MongodStarter starter = MongodStarter.getDefaultInstance();
mongodExecutable = starter.prepare(mongodConfig);
mongodExecutable.start();
mongoTemplate = new MongoTemplate(MongoClients.create(String.format(CONNECTION_STRING,ip,port)),"test");
}
[2021-03-16T01:41:26.026Z] [com.mongodb.diagnostics.logging.SLF4JLogger] [main] [71] [INFO ] Opened connection [connectionId{localValue:4,serverValue:2}] to localhost:55359
我尝试为端口使用不同的值,但没有一个起作用。
为什么我的配置没有得到尊重?
如果我需要任何其他信息,请告诉我。
解决方法
只排除默认加载的 AutoConfiguration 类:
B1(0) = "AT 1/1"
顺便说一下,我使用切片测试注释 @DataMongoTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
class IntegrationTests { ... }
而不是 @DataMongoTest
以便仅引导测试所需的内容(与 MongoDB 相关的 bean)。