需要背景チームには統合テストが必要であり、そのためには、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() の高度な使用例の詳細な説明
Vue $set 配列コレクションオブジェクトの割り当てVue カスタム配列オブジェクト コレクショ...
ステップ 1: yum install httpd -y #httpd サービスをインストールします...
MySQL Community Server 5.7.18 の配布パッケージには .ini ファイル...
検証できるデータの種類は次のとおりです a = [1,2,3,4,5,6]とします。 b = [とし...
メタタグ機能METAタグは、HTMLタグのHEAD領域にある重要なタグです。文書の文字セット、使用言...
1. グローバルオブジェクトすべてのモジュールは呼び出すことができます1) global: ブラウザ...
Tomcat テストで 404 問題が発生します。問題は次のとおりです。 HTTP ステータス 40...
目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
この記事は議論の出発点となることを目的としています。詳細なドキュメントと easycom の仕様につ...
MySQL データベースを使用すると、他のユーザーが定義したストアド プロシージャを他のユーザーが変...
Redux はデータ状態管理プラグインです。React や Vue を使用してコンポーネント化された...
目次1. データベースエンジン1.1 ビューデータベースエンジン1.2 デフォルトのデータベースエン...
ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...
フロントエンド Web エンジニアとして、ページ効果を作成するときに次の現象に遭遇したことがあるはず...