私は安心を使用していますが、それが実行されるデータベースをどのように変更できるのでしょうか?
現在、すべてのデータを保持するデータベースに接続するアプリケーションに対してテストしていますが、遅いです。テストデータベースを安心して使用したい。どうやってやるの?一部のデータのみを含むデータベースにのみ接続する 2 番目のサーバーを使用する必要がありますか?
私は安心を使用していますが、それが実行されるデータベースをどのように変更できるのでしょうか?
現在、すべてのデータを保持するデータベースに接続するアプリケーションに対してテストしていますが、遅いです。テストデータベースを安心して使用したい。どうやってやるの?一部のデータのみを含むデータベースにのみ接続する 2 番目のサーバーを使用する必要がありますか?
db テストは遅いです。限目。ネットワーク テスト (http 経由) も遅いです。まず第一に:あなたは何をしたいですか?単体テストについて話している場合、それは間違っています。単体テストでは、json から http 経由で db まですべてをテストするべきではありません。両方を避けるようにしてください。フレームワーク スタックがサポートしている場合 (spring-mvc など)、https トラフィックなしで json バインディングをテストできます。そうでない場合は、http バインディング テストをビジネス ロジックから分離します (サービスをモックします)。データベースと同じ。他に何もせずに、dao/リポジトリのみをテストします。
小さなテストがたくさんある場合、遅いテスト (ネットワーク、データベース、統合スモーク テスト) を速いテスト (ビジネス ロジック) から簡単に分離して、別のグループに入れることができます。次に、特定のグループのみを選択的に実行することもできます (現在変更している部分によって異なります)。また、ジェンキンスでは、グループごとにステージを分けることができます。このようにして、ビジネス ロジックが失敗した場合に ci から迅速なフィードバックが得られ、それらが成功した場合、ジェンキンスはより遅いテストも実行します。
何らかの理由でテストを小さくしたくない場合は、db に 1 回だけ (テストの前に) 接続し、この接続を閉じないことを検討してください。これにより、すべてのテストの実行が全体的に高速化されます。テストでデータベースの内容が変更された場合は、それを単一のトランザクションとして保持し、テスト後にロールバックを実行してください。このようにして、各テストの前にデータベースを設定することを避けることができます