MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Testowanie integracji z Testcontainerami + Quarkus + MongoDB

Nie mogę powiedzieć na pewno, nie widząc konfiguracji testowej, ale zgaduję, że działa z docker run a nie Testcontainers, ponieważ docker run ujawnia stały port (zawsze 27017), ale kontenery testowe ujawnią port 27017 jako losowy port (aby uniknąć konfliktów portów na maszynach testowych).

Aby używać kontenerów testowych z testem Quarkus, twoje testy muszą być zgodne z następującym przepływem:

  1. Uruchom kontenery. Jest to konieczne, ponieważ losowy ujawniony port dla MongoDB może być znany dopiero po kontener został uruchomiony.
  2. Uzyskaj losowe porty z Testcontainers po uruchomieniu kontenerów, a następnie ustaw dowolne właściwości konfiguracji testu, które zależą od portów kontenerów. Na przykład:

    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. Niech Quarkus zacznie. Ponieważ program Quarkus nie obsługuje konfiguracji dynamicznej, musisz ustawić port MongoDB przed uruchomieniem programu Quarkus.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy indeksy MongoDB są trwałe po ponownym uruchomieniu?

  2. Zaktualizuj model za pomocą Mongoose, Express, NodeJS

  3. Jak zainstalować MongoDB 4.2 na systemach RedHat/CentOS 7?

  4. Data MongoDB w strefie czasowej

  5. Jak odwołać się do osadzonego dokumentu w Mongoid?