MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Интеграционно тестване с Testcontainers + Quarkus + MongoDB

Не мога да кажа със сигурност, без да видя тестовата ви конфигурация, но предполагам, че работи с docker run а не Testcontainers, защото docker run излага фиксиран порт (винаги 27017), но Testcontainers ще излага порт 27017 като произволен порт (за избягване на конфликти на портове на тестови машини).

За да използвате Testcontainers с тест Quarkus, вашите тестове трябва да следват този поток:

  1. Начални контейнери. Това е необходимо, защото произволно откритият порт за MongoDB може да бъде известен само след контейнерът е стартиран.
  2. Получете произволни портове от Testcontainers след стартиране на контейнерите, след което задайте всички свойства на конфигурацията на теста, които зависят от портовете на контейнера. Например:

    static GenericContainer mongodb = new GenericContainer<>("mongo:4.2").withExposedPorts(27017);
    static {
      mongodb.start();
      System.setProperty("quarkus.mongodb.connection-string",
                         "mongodb://" + mongodb.getContainerIpAddress() + ":" + mongodb.getFirstMappedPort());
    }
    
  3. Нека Quarkus започне. Тъй като Quarkus не поддържа динамична конфигурация, трябва да зададете порта на MongoDB, преди да стартира Quarkus.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Каква е разликата между safe:true и safe:false във връзка с mongoskin? и как да го използвам?

  2. Как Mocha знае кой файл да зареди първо в тестовия пакет

  3. MongoDB индексиране за приложение на Parse Server

  4. как да игнорирате дублирани документи, когато използвате insertMany в библиотеката на mongodb php?

  5. MongoDB dropIndexes()