既存のプロジェクトの周りにいくつかのテスト足場を設定しています。これには、JUnitとDbUnitを使用したいくつかの統合テストが含まれます。また、継続的インテグレーションのためにJenkinsインストールをセットアップしました。
私の問題は、開発環境とテスト環境の間のDB接続を変更することです。アドホックなテストと調査を迅速に行うために、独自の製品スタックをローカルにインストールしています。開発中は、プライベートデータベースに対してテストを実行します。これは、データベースの方が高速で、バグのある進行中のコードで他の人の一日を台無しにすることがないためです。
コードがチェックインされると、Jenkinsがテストを実行します。今はまだ私のローカルデータベースを指しています。Jenkinsに、テスト環境にある別のデータベースに対してテストを実行してもらいたいと思います。
コードを変更せずにテスト用のデータベース接続を変更するためのベストプラクティス/戦略/テクノロジーなどはありますか?ソリューションでJenkinsが複数のDBに対して同じテストを実行できる場合のボーナスポイント(DbUnitは不可知論者であるため可能であるはずです)。
詳細については編集:
この製品は大きなものであり、相互作用するコンポーネントが数十個あります(通常は別々のvms /プロセスにあります)。稼働中のシステムでは、通常、さまざまなプロセスがデータベースを介して通信します。IEでは、UIプロセスが変更をテーブルに書き込み、バックエンドプロセスがそのテーブルをポーリングして変更を確認します。はい、それはひどいです。統合テストでは、UIを使用してシステムを構成し、その状態をDbUnitでキャプチャします。次に、その「入力」に対してテストを実行できます。
私のコンポーネントとすべての新しいコンポーネントは、Mavenによって管理されています。DB接続は現在、テストセットアップでハードコーディングされています。DbUnitシステムは機能します。テストが参照しているデータベースを、開発環境で自分が実行しているのか、テスト環境でJenkinsが実行しているのかに応じて、切り替えられるようにしたいと思います。