需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミドルウェアに依存する必要があります。すべての開発者は、開発したコードに対してテストを記述し、テストを実行する必要があります。 相互干渉を避けるために、R&D センター内にローカルに独自の依存環境を構築することもできます。これらの環境が簡単、高速、クリーンアップしやすいものになることを願っています。 Dockerを使用して環境を構築するDocker は上記の要求を十分に満たすことができます。
要約すると、Docker を使用するとプロジェクトの依存関係環境を迅速に構築できますが、ローカライズされた Docker 依存関係により、テスト中にコードが十分に純粋ではなくなり、各オペレーティング環境ではローカルの Docker のインストールが必要になります。 集中型Dockerサーバーによる統合テストの改善実際、Docker 自体はリモート接続モードを提供しており、これにより Docker を集中的にデプロイし、テスト コードを統合して、TCP 接続経由で Docker サーバーを使用して依存ミドルウェアをビルドおよびテストすることができます。 Docker Server リモートリンク設定この記事では、centos 7.6 を例に、リモートで接続できるように docker を構成する方法について説明します。 {"ホスト": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]} ファイル [サービス] 実行開始= 実行開始=/usr/bin/dockerd
テストコンテナフレームワークリモートDockerをデプロイした後、次のような問題が発生します。
幸いなことに、Testcontainers フレームワークは上記の問題をうまく解決するのに役立ちます。
Spring Boot と統合されたテストコンテナさらに、ゲーム会社 Playtika は、Testcontainers と Spring Boot を統合するテスト フレームワーク 環境変数の依存関係リモート Docker リンクに Testcontainers または playtika の testcontainers-spring-boot を使用する場合、Docker クライアントをローカルにインストールする必要はありません。ただし、コードがリモート Docker のアドレスを認識できるように、関連する環境変数を構成する必要があります。このアドレスを構成する方法はいくつかあります。
コマンドライン経由でDockerをリモートで使用および管理する上記のテスト コードでは、Docker クライアントのインストールは必要ありません。ただし、コマンドライン経由で docker を管理する必要がある場合は、リモート docker と通信するための docker クライアントをインストールできます。もちろん、上記のテストコンテナは一種のクライアントに相当します。 さまざまなオペレーティング システムでのクライアント プログラムのインストール方法については、https://gist.github.com/kekru/4e6d49b4290a4eebc7b597c07eaf61f2 を参照してください。 参考文献 https://www.testcontainers.org/ 統合テストにリモート Docker を使用する方法については、これで終わりです。Docker 統合テストの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Vue3 setup() の高度な使用例の詳細な説明
1. 画像を取得する #Webコントロールページを含むバージョンを指定します docker pull...
フロントエンドとバックエンドがやり取りする場合、get または delete を介してバックエンドに...
いくつかの簡単な Linux コマンドを使用すると、ストレージまたは電子メールの添付ファイルのサイズ...
Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...
質問アップロードするファイルのタイプを accept に追加することは、「表面的な」役割しか果たしま...
序文最近、同社の業務の一部がコンピュータルームに移転し、ホストリソースの監視と管理をより便利に行うた...
最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。...
目次1. 場所/マッチング2. 場所 = / 一致Locaitonには、完全一致(=)、プレフィック...
以前、MySQLがローカルでは接続できるのにリモートでは接続できないという問題に遭遇したことがありま...
1. 動的クエリルール動的クエリルールは、おおよそ次の図のようになります。ユーザのカスタマイズに応じ...
K8s k8s はクラスターです。クラスターには複数の名前空間があります。名前空間の下には複数のポッ...
はじめに: すべてのブラウザには、「ユーザー エージェント スタイル シート」と呼ばれる、すべてのペ...
序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...
1. MySQLの一般的な接続INNER JOIN (内部結合、または等価結合): 2 つのテーブ...
vsftpdをインストールする $ sudo apt-get install vsftpd -y v...