embeddedmongo每次都从一个随机端口开始?

rvpgvaaj  于 2021-07-22  发布在  Java
关注(0)|答案(1)|浏览(397)

我正在使用flapdoodle的嵌入式mongo在我的spring boot应用程序上运行集成测试。
我做了如下测试:

  1. @SpringBootTest(classes = Application.class)
  2. @TestMethodOrder(OrderAnnotation.class)
  3. class IntegrationTests {
  4. @BeforeAll
  5. static void setup() throws Exception {
  6. String ip = "localhost";
  7. int port = 65000;
  8. IMongodConfig mongodConfig = new MongodConfigBuilder().version(Version.Main.PRODUCTION)
  9. .net(new Net(ip, port, Network.localhostIsIPv6())).build();
  10. MongodStarter starter = MongodStarter.getDefaultInstance();
  11. mongodExecutable = starter.prepare(mongodConfig);
  12. mongodExecutable.start();
  13. mongoTemplate = new MongoTemplate(MongoClients.create(String.format(CONNECTION_STRING, ip, port)), "test");
  14. }

但每次mongodb服务器在随机端口上启动时:

  1. [2021-03-16T01:41:26.026Z] [com.mongodb.diagnostics.logging.SLF4JLogger] [main] [71] [INFO ] Opened connection [connectionId{localValue:4, serverValue:2}] to localhost:55359

我尝试过为端口使用不同的值,但都不起作用。
为什么我的配置没有得到尊重?
让我知道如果任何其他信息是我这边需要的。

gfttwv5a

gfttwv5a1#

只需排除默认加载的自动配置类:

  1. @DataMongoTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
  2. class IntegrationTests { ... }

顺便说一下,我使用了切片测试注解 @DataMongoTest 而不是 @SpringBootTest 为了只引导测试所需的内容(mongodb相关bean)。

相关问题