アグリゲータである Jtest Plugin は、ビルド中に 1 回だけ実行される必要があります。コマンドラインから直接 jtest ゴールを実行するか、レポート プラグインとして実行することを推奨します。

解析の前にプロジェクトのビルドを実行することは必須ではありません。しかし、複数モジュールからなるプロジェクトの場合は、事前にコンパイルすることを推奨します。そうすると、Jtest はローカル リポジトリの成果物を使用できるため、コードのテストおよび解析にかかる時間を短くできます。

Maven での解析とカバレッジ情報の収集を行う前に、Jtest ライセンスが適切に設定されていることを確認してください (「ライセンスの設定」を参照)。

静的解析の実行

コードに対して静的解析を実行するには、次の操作を行います。

  1. Jtest Plugin for Maven がセットアップ済みであることを確認します (「Jtest Plugin for Maven の設定」を参照)。
  2. jtest:jtest ゴールを実行します。 コマンドは次のようになります。

    mvn jtest:jtest
  3. 解析結果を参照します (「結果の参照」を参照)。

Jtest が Maven テスト スコープの依存関係のインポートに関するコンパイルの問題をレポートした場合、mvn test コマンドで jtest:jtest ゴール を実行してください。

mvn test jtest:jtest

(info)デフォルトでは、テスト ソースは解析から除外されます。テスト コードを解析対象にするには、excludeTestSources オプションを無効にします。「Maven 用 Jtest ゴール リファレンス」を参照してください。

単体テストの実行

Jtest レポートに単体テストの結果を含めるには、jtest:jtest ゴールおよび単体テスト用のビルトイン テスト コンフィギュレーション Unit Tests を使用してテストを実行します。

  1. Jtest Plugin for Maven がセットアップ済みであることを確認します (「Jtest Plugin for Maven の設定」を参照)。
  2. Maven で jtest:jtest ゴールを実行します。コマンドは次のようになります。

    mvn clean test jtest:jtest -Djtest.config="builtin://Unit Tests"

単体テストのカバレッジの収集

単体テスト実行時にカバレッジ情報を収集するには、jtest:jtest および jtest:agent ゴールと単体テスト用のビルトイン テスト コンフィギュレーション Unit Tests を使用してテストを実行します。

  1. Jtest Plugin for Maven がセットアップ済みであることを確認します (「Jtest Plugin for Maven の設定」を参照)。
  2. Maven で jtest:agent および jtest:jtest ゴールを実行します。jtest:agent ゴールの実行前にテストおよびクラスがコンパイルされている必要があります。? コマンドは次のようになります。

    mvn clean test-compile jtest:agent test jtest:jtest -Djtest.config="builtin://Unit Tests"

(info) クラスがコンパイルされる前に jtest:agent ゴールを実行すると、カバレッジが空になる場合があります。Tycho plugins や他のデフォルトのライフサイクルには含まれないプラグインを使用する場合、専用の (デフォルトではない) コンパイラを呼び出し、クラスが適切にコンパイルされ、カバレッジ情報が収集されるようにします。コマンドは次のようになります。

mvn clean tycho-compiler:compile jtest:agent verify jtest:jtest -Djtest.config="builtin://Unit Tests"

jtest:agent ゴール

jtest:agent ゴールは、ビルド モジュールに基づいて Jtest エージェント設定を生成し、 initialize フェーズで agentPropertyNames パラメーターによって指定されたプロパティ ファイルの javaagent VM 引数を設定します。

デフォルトでは、特定のプロパティによって maven-surefire-plugin および eclipse-test-pluginjavaagent VmArg をインジェクトします。

Maven テスト プラグインで jtest:agent ゴールを使用するための前提条件は以下のとおりです。

jtest:agent ゴールは、(argLine および tycho.testArgLine によるデフォルト値から) VmArgs パラメーター プロパティをセットアップすることで Maven テスト プラグイン (maven-surefire-plugin および tycho-surefire-plugin) を自動的に設定します。これらのパラメーターのデフォルト値を変更する必要がある場合は、以下のいずれかの方法で変更します。

アプリケーション カバレッジの収集

Jtest のカバレッジ エージェントを使用すると、実行中のアプリケーションでの手動テストまたは自動テスト実行時にカバレッジ データを収集できます。Jtest でのアプリケーション カバレッジの収集については「アプリケーション カバレッジ」を参照してください。

テスト影響分析

Jtest Plugin for Maven の機能を拡張してテスト影響分析を使用することができます。テスト影響分析を行うと、変更の影響を受けるテストだけを識別して再実行できるため、影響を受けない多数のテストを実行するのに必要な時間や手間を省くことができます。プロジェクトのテスト影響分析を行うには、以下が必要です。

  1. Jtest に付属のテスト影響分析プラグイン (cbt-maven-plugin) を Maven ビルドに追加します。
  2. プラグインを設定します。
  3. affected-tests ゴールを実行します。

前提条件

さらに、Jtest Plugin for Maven が Jtest に付属の Maven リポジトリにアクセスできるよう設定されている必要があります (「初期セットアップ」を参照)。

テスト影響分析を使用するには、Parasoft ライセンス設定をカスタマイズする必要があります。 jtest.properties ファイルで custom_edition が指定され、'Change Based Testing' および 'Automation' 機能が有効化されていることを確認します。

(info)?テスト影響分析を実行するには、さらにメモリが必要になります。Maven ビルドに割り当てるメモリを増やすことを推奨します。

(info) Jtest は Maven のパラレル ビルドのテスト影響分析をサポートしていません。

(info) Jtest は runModifiedTests オプションが true に設定されている場合、テストの除外をサポートしていません (「Optional Parameters」を参照)。

Test Impact Analysis Plugin との統合

POM ファイルのプラグインのリストに cbt-maven-plugin を追加することで、テスト影響分析プラグインと統合できます。

<build>
    <plugins>
        <plugin>
            <groupId>com.parasoft.xtest.cbt</groupId>
            <artifactId>cbt-maven-plugin</artifactId>
            <version>1.0.0</version>
        </plugin>
    </plugins>
</build>

プラグインの設定

cbt-maven-plugin を設定することで、POM ファイルまたはコマンド ラインからプロジェクトのテスト影響分析をカスタマイズできます。最低でも、実行時に Jtest が生成する以下のファイルへのパスを指定する必要があります。

利用可能なオプションの一覧については「Maven 用 Jtest ゴール リファレンス」を参照してください。

POM ファイルでの設定

POM ファイルでプラグインを設定するには、以下に cbt-maven-plugin プロパティを追加します。

コマンド ラインでの設定

コマンド ラインでテスト影響分析をカスタマイズするには、-D スイッチを使用して cbt-maven-plugin プロパティを渡します。プロパティには "parasoft" または "jtest" 接頭辞を付ける必要があります (詳細は「Maven 用 Jtest ゴール リファレンス」を参照)。コマンドは次のようになります。

mvn cbt:affected-tests test -Dparasoft.coverage.file=target/jtest/coverage.xml -Dparasoft.test.file=target/jtest/report.xml -Dparasoft.runFailingTests=false -Dparasoft.runModifiedTests=true -Djtest.home=$JTEST_HOME -Djtest.settings=jtestcli.properties

affected-tests ゴールの設定と実行

コマンド ラインから、または POM ファイルのゴールを設定することで、affected-tests ゴールの実行を設定できます。

コマンド ラインでの設定

Maven ビルド ファイルに cbt-maven-plugin が含まれている場合 (「 Test Impact Analysis Plugin との統合」を参照)、コマンド ラインから cbt:affected-tests ゴールを実行できます。必ず test ゴールの前に実行します。

mvn cbt:affected-tests test

POM ファイルでの設定

ビルド プラグインまたはプロファイルのビルド プラグインで affected-tests ゴールの実行を設定できます。