1.4. ネイティブ実行可能ファイルのテスト


ネイティブ実行可能ファイルの機能をテストするには、ネイティブモードでアプリケーションをテストします。@QuarkusIntegrationTest アノテーションを使用してネイティブ実行可能ファイルをビルドし、HTTP エンドポイントに対してテストを実行します。

手順

  1. pom.xml ファイルを開き、native プロファイルに以下の要素があることを確認します。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <executions>
            <execution>
                <goals>
                    <goal>integration-test</goal>
                    <goal>verify</goal>
                </goals>
                <configuration>
                    <systemPropertyVariables>
                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                        <maven.home>${maven.home}</maven.home>
                    </systemPropertyVariables>
                </configuration>
            </execution>
        </executions>
    </plugin>

    Maven Failsafe プラグイン(maven-failsafe-plugin)は統合テストを実行し、生成されるネイティブ実行可能ファイルの場所も示します。

  2. src/test/java/org/acme/quickstart/NativeGreetingResourceIT.java ファイルを開き、次のコンテンツが含まれていることを確認します。

    package org.acme.getting.started;
    
    import io.quarkus.test.junit.QuarkusIntegrationTest;
    
    @QuarkusIntegrationTest 
    1
    
    public class GreetingResourceIT extends GreetingResourceTest { 
    2
    
    
        // Execute the same tests but in native mode.
    }
    1
    テストの前に、ネイティブファイルからアプリケーションを開始する別のテストランナーを使用します。実行可能ファイルは、Maven Failsafe プラグインで設定された native.image.path システムプロパティーを使用して取得されます。
    2
    この例は、GreetingResourceTest を拡張しますが、新しいテストを作成することも可能です。
  3. テストを実行します。

    ./mvnw verify -Pnative

    以下の例は、このコマンドの出力を示しています。

    ./mvnw verify -Pnative
    ...
    [getting-started-1.0-SNAPSHOT-runner:18820]     universe:     587.26 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]      (parse):   2,247.59 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]     (inline):   1,985.70 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]    (compile):  14,922.77 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]      compile:  20,361.28 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]        image:   2,228.30 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]        write:     364.35 ms
    [getting-started-1.0-SNAPSHOT-runner:18820]      [total]:  52,777.76 ms
    [INFO]
    [INFO] --- maven-failsafe-plugin:2.22.1:integration-test (default) @ getting-started ---
    [INFO]
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running org.acme.quickstart.NativeGreetingResourceIT
    Executing [/data/home/gsmet/git/quarkus-quickstarts/getting-started/target/getting-started-1.0-SNAPSHOT-runner, -Dquarkus.http.port=8081, -Dtest.url=http://localhost:8081, -Dquarkus.log.file.path=build/quarkus.log]
    2019-04-15 11:33:20,348 INFO  [io.quarkus] (main) Quarkus 999-SNAPSHOT started in 0.002s. Listening on: http://[::]:8081
    2019-04-15 11:33:20,348 INFO  [io.quarkus] (main) Installed features: [cdi, resteasy]
    [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.387 s - in org.acme.quickstart.NativeGreetingResourceIT
    ...
    注記

    Quarkus は、ネイティブイメージの開始まで 60 秒間待機し、その後ネイティブテストに自動的に失敗します。この期間は、quarkus.test.wait-time システムプロパティーを設定することで変更できます。

    以下のコマンドを使用して、待機時間を延長できます。この場合の <duration> は待機時間 (秒単位) です。

    ./mvnw verify -Pnative -Dquarkus.test.wait-time=<duration>

1.4.1. ネイティブ実行可能ファイルとして実行する場合のテストを除外する

ネイティブアプリケーションに対してテストを実行する場合は、HTTP エンドポイントと対話することしかできません。テストはネイティブで実行されないため、JVM でテストを実行する場合と同様に、アプリケーションのコードにはリンクできません。

JVM とネイティブ実行の間でテストクラスを共有し、@DisabledOnNativeImage アノテーションを使用して特定のテストを除外して、その JVM 上でのみテストを実行できます。

1.4.2. 既存のネイティブ実行可能ファイルのテスト

Failsafe Maven プラグインを使用すると、既存の実行可能ビルドに対してテストを実行できます。ビルド後に、バイナリーで複数のテストセットを段階的に実行できます。

注記

Quarkus で生成したネイティブ実行可能ファイルをテストするには、利用可能な Maven コマンドを使用します。コマンドラインを使用してこのタスクを完了できる同等の Quarkus CLI コマンドはありません。

手順

  • ビルド済みのネイティブ実行可能ファイルに対してテストを実行します。

    ./mvnw test-compile failsafe:integration-test

    このコマンドは、Failsafe Maven プラグインを使用して、既存のネイティブイメージに対してテストを実行します。

  • あるいは、以下のコマンドを使用してネイティブ実行可能ファイルへのパスを指定することもできます。<path> は、ネイティブイメージパスになります。

    ./mvnw test-compile failsafe:integration-test -Dnative.image.path=<path>
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る