4.4. インメモリーデータベースでのテスト
本番環境で使用する予定のデータベースを使用します。コンテナー技術により、これは簡単に実現できます。JVM がサポートするデータベースを使用して、インテグレーションテストを実行することもできます。H2 データベースおよび Derby データベースは、一般的に組み込みモードで使用され、インテグレーションテストの実行に使用されます。
組み込みエンジンは JVM モードで適切に機能しますが、ネイティブ実行可能ファイルにコンパイルすることはできません。Quarkus は、データベースエンジン全体のネイティブ実行可能ファイルへの組み込みをサポートしません。
JVM またはネイティブ実行可能ファイル、もしくはその両方で統合テストを実行する場合は、統合テストの任意のクラスに @QuarkusTestResource
(H2DatabaseTestResource.class
) または @QuarkusTestResource
(DerbyDatabaseTestResource.class
) を追加できます。テストスイートは、テストの実行に必要な個別のプロセスとして組み込みデータベースを開始および停止できるようになりました。
@QuarkusTestResource
(H2DatabaseTestResource.class
) および @QuarkusTestResource
(DerbyDatabaseTestResource.class
) は、H2 および Derby の場合にそれぞれ、Maven コーディネート io.quarkus:quarkus-test-h2
および io.quarkus:quarkus-test-derby
を持つアーティファクトによって提供されます。
以下の例は、H2 データベースでヘルパーを使用する方法を示しています。
これにより、データベースが通常どおりに JVM で実行される間、アプリケーションがネイティブ実行可能ファイルにコンパイルされていても、アプリケーションをテストできます。
以下を使用して接続します。
quarkus.datasource.db-kind=h2 quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test
quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test