sql >> データベース >  >> NoSQL >> MongoDB

Testcontainers + Quarkus+MongoDBとの統合テスト

    テスト構成を見ないとはっきりとは言えませんが、docker runで動作すると思います。 docker runであるため、Testcontainersではありません 固定ポート(常に27017)を公開しますが、Testcontainersはポート27017を公開します ランダムポートとして (テストマシンでのポートの競合を回避するため)

    QuarkusテストでTestcontainersを使用するには、テストは次のフローに従う必要があります。

    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は動的構成をサポートしていないため、Quarkusを起動する前にMongoDBポートを設定する必要があります。


    1. MongoDBの原子性、分離、並行性

    2. オーバーロードされたプロパティLaravelMongoDBの間接的な変更

    3. MongoDBは、_idで複合シャードキーを使用するときに一意の_idフィールド値を保証しますか?

    4. LaravelにWebソケットを実装したい