jtest タスクは、ルート プロジェクトに対してだけ適用および実行されるべきです。解析の前にプロジェクトのビルドを実行することは必須ではありません。しかし、複数モジュールのビルドでは、コマンド ラインに build または assemble タスクを追加することによって、事前にコンパイルを行うことを推奨します。そうすると、Jtest はローカル リポジトリの成果物を使用できるため、コードのテストおよび解析にかかる時間を短くできます。

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

静的解析の実行

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

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

    gradle jtest -I PATH/TO/JTEST/integration/gradle/init.gradle

    Jtest Plugin for Gradle は、.json ファイルから必要なビルド データを収集し、指定したテスト コンフィギュレーションに従ってコードを解析します。

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

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

単体テストの実行

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

  1. Jtest Plugin for Gradle がセットアップ済みであることを確認します (「Jtest Plugin for Gradle の設定」を参照)。
  2. 次の順序で Gradle タスクを実行します:
    test (または build) タスクで単体テストを実行します。
    - jtest タスク
      コマンドは次のようになります。

    gradle clean test jtest -Djtest.config="builtin://Unit Tests"
  3. 単体テストを実行するには、test (または build) タスクをコマンド 李案に追加します。
  4. jtest タスクを実行します。
  5. Gradle で jtest-agent および jtest タスクを実行します。コマンドは次のようになります。

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

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

  1. Jtest Plugin for Gradle がセットアップ済みであることを確認します (「Jtest Plugin for Gradle の設定」を参照)。
  2. 次の順序で Gradle タスクを実行します:
    - jtest-agent タスク
    test (または build) タスクで単体テストを実行します。
    - jtest タスク
      コマンドは次のようになります。

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

(info) jtest-agent タスクを使用してカバレッジを収集することを推奨します。jtest-instument タスクを使用したオフラインのインストゥルメントは非推奨になりました。

(info) ビルド スクリプトで JVM 引数を指定している場合、他の JVM 引数を上書きしていないことを確認してください。

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

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

テスト影響分析

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

  1. テスト影響分析プラグインを設定します。
  2. affectedTests タスクを実行します。

(info) Gradle ビルド スクリプトを変更する必要はありません。

前提条件

  • Jtest 10.4.1 以上
  • Gradle 3.3 以上

ライセンス

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

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

(info) Jtest は Gradle のビルド スクリプトにすべてのテストをインクルードする include パターンが含まれている場合、テスト影響分析を実行しない場合があります。

(info) 同じローカル環境で複数回テスト影響分析を実行する場合、コマンド ラインに --no-daemon オプションを追加します。

Test Impact Analysis Plugin との統合

Jtest に付属の init.gradle スクリプトを使用すると、Gradle のビルド スクリプトを変更せずにテスト影響分析プラグインと Gradle を統合できます。プラグインと Gradle を統合するには、-I オプションを使用してコマンド ラインに init.gradle スクリプトの場所を渡します。

gradle affectedTests test -I PATH/TO/JTEST/integration/gradle/init.gradle

プラグインの設定

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

  • coverage.xml  

  • report.xml

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

ビルド スクリプトでの設定

ビルド スクリプトで設定を宣言する際にプロパティを指定します。

build.gradle
affectedTests {
    coverageFile = 'path/to/coverage.xml'
    testFile = 'path/to/report.xml'
    runFailingTests = false
    runModifiedTests = true
    jtestHome = 'path/to/jtest'
    settingsFiles = ['path/to/settings1.properties', 'path/to/settings2.properties']
}

コマンド ラインでの設定

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

コマンド ライン
gradle affectedTests test -I PATH/TO/JTEST/integration/gradle/init.gradle -Dparasoft.coverage.file="path/to/coverage.xml" -Dparasoft.test.file="path/to/report.xml" -Dparasoft.runFailingTests=false -Dparasoft.runModifiedTests=true -Djtest.home="path/to/jtest" -Djtest.settings="jtestcli.properties,newsettings.properties"

affectedTest タスクの設定と実行

これ以上の追加の設定なしでコマンド ラインから affectedTests タスクを実行できます。必ず test タスクの前に実行します。コマンドは次のようになります。

コマンド ライン
gradle clean affectedTests test -I PATH/TO/JTEST/integration/gradle/init.gradle

または、以下のように実行することもできます。

  1. build.gradle スクリプトでタスクの実行を設定します。

    build.gradle
    test.dependsOn affectedTests
  2. Gradle の test タスクを実行します – 自動的に affectedTests タスクが実行されます。

    コマンド ライン
    gradle test -I PATH/TO/JTEST/integration/gradle/init.gradle


  • No labels