第4章 ネイティブ実行可能ファイルのテスト
ネイティブ実行可能ファイルの機能をテストするために、ネイティブモードで実行するアプリケーションをテストします。@NativeImageTest アノテーションを使用して、ネイティブ実行可能ファイルをビルドし、http エンドポイントに対してテストを実行します。
手順
pom.xmlファイルを開き、nativeプロファイルに以下の要素が含まれていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow failsafe-maven-pluginはインテグレーションテストを実行し、作成されたネイティブ実行可能ファイルの場所を示します。src/test/java/org/acme/quickstart/NativeGreetingResourceIT.javaファイルを開き、以下の内容が含まれていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow テストを実行します。
./mvnw verify -Pnative
./mvnw verify -PnativeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例は、このコマンドの出力を示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Quarkus は、ネイティブイメージの開始まで 60 秒間待機し、その後ネイティブテストに自動的に失敗します。この待機時間は、
quarkus.test.native-image-wait-timeシステムプロパティーを使用して変更可能です。以下のコマンドを使用して、待機時間を延長することができます。
<duration>は、秒単位の待機時間になります。./mvnw verify -Pnative -Dquarkus.test.native-image-wait-time=<duration>
./mvnw verify -Pnative -Dquarkus.test.native-image-wait-time=<duration>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1. ネイティブ実行可能ファイルとして実行する場合のテストを除外する リンクのコピーリンクがクリップボードにコピーされました!
ネイティブアプリケーションに対してテストを実行する場合、HTTP エンドポイントと対話することしかできません。テストはネイティブでは実行されないため、お使いのアプリケーションのコードに対して、JVM での実行でリンクできる場合と同じようにリンクすることはできません。
JVM とネイティブ実行可能ファイルとの間でテストクラスを共有することができ、@DisabledOnNativeImage アノテーションを使用して特定のテストを除外して JVM でのみ実行することができます。
4.2. 既存のネイティブ実行可能ファイルのテスト リンクのコピーリンクがクリップボードにコピーされました!
既存の実行可能ファイルのビルドに対してテストすることができます。これにより、バイナリーのビルド後にバイナリーで複数のテストのセットを段階的に実行することができます。
手順
すでにビルドされたネイティブ実行可能ファイルに対してテストを実行します。
./mvnw test-compile failsafe:integration-test
./mvnw test-compile failsafe:integration-testCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、Failsafe Maven Plugin を使用して、既存のネイティブイメージに対してテストを実行します。
あるいは、以下のコマンドを使用してネイティブ実行可能ファイルへのパスを指定することもできます。
<path>は、ネイティブイメージパスになります。./mvnw test-compile failsafe:integration-test -Dnative.image.path=<path>
./mvnw test-compile failsafe:integration-test -Dnative.image.path=<path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow