統合テストに使用されるデータベースを作成するための SQL ステートメントを含むファイルが多数あるプロジェクトに参加しました。
これらのファイルを使用して、単体テスト用のデータベースを作成する方法を考えています (Java と Maven を使用)。
単体テストごとに HSQL インメモリ データベースを作成したり、Spring jdbc 組み込みデータベース機能を使用したりすることもできますが、テスト セットアップで実行する SQL ステートメントが多すぎるため、スケーラブルではありません。
したがって、Maven テスト フェーズの開始時に一時データベース (SQL ステートメントをロードする) を作成し、単体テストでこの一時データベースにアクセスしてさまざまな操作を実行し、Maven の最後に一時データベースを削除したいと思います。テスト段階。
テストフェーズの実行を可能にする sql-maven-plugin を見てきましたが、すべての単体テストで使用できる一時データベースを構成する方法がわかりません。接続するサーバーはなく、メモリ内データベースは複数の単体テストで機能しません (私は推測します)。
たとえば、JDBC ドライバーの URL を jdbc:hsqldb:file:/path/to/temporary/file のように指定しますが、maven で一意の一時ファイルを生成する方法がわかりません。
これを行う方法に関する提案、またはより良いアプローチがある場合は?
更新: target/db ディレクトリに作成されたファイルベースのデータベースを使用することにしました。テストを実行する前に maven clean プラグインを使用して target/db ディレクトリを削除し、maven sql プラグインを使用してスクリプトからデータベースを作成します。