このセクションでは、Jtest デスクトップ ユーザー向けにテスト影響分析のワークフローを説明します。コマンド ラインからのテスト影響分析の実行については、「Maven を使用したテストと解析」および「Gradle を使用したテストと解析」を参照してください。

このセクションの内容

はじめに

Jtest のテスト影響分析機能は、ローカルでのコードの変更の影響を受けるテスト ケースを自動的に検出することで、テスト作業の効率化を支援します。これにより、変更の影響を受けるテストだけを識別して再実行することができます。

Jtest は、コードの変更の影響を受けるテストを以下の方法で識別します。

  • 単体テストの名前付け規則。たとえば、変更されたクラスの名前が com.mypackage.MyClass の場合、単体テスト アシスタントの設定で指定されたテスト ソース フォルダー内にあるテスト クラス com.mypackage.MyClassTest、com.mypackage.MyClassParameterizedTest、および com.mypackage.MyClassSpringTest が識別されます。変更されたメソッドの名前が performFoo() の場合、testPerformFoo() テスト メソッドが識別されます。
  • 単体テスト実行時に Jtest が収集したコード カバレッジ データ。特定のコード セクションは、コードを実行する単体テストと関連付けられています。

[影響を受ける単体テスト] ビューは、これら 2 つのテスト識別方法の結果を組み合わせます。

[影響を受ける単体テスト] ビューは、単体テストの名前付け規則に基づいて自動的にテストを表示しますが、コード カバレッジ データから得られる結果のほうが正確であり、実行する必要があるテストをさらに多く識別できる可能性が高いでしょう。そのため、影響を受けるテストを確認する前に、最新の完全な単体テスト実行から得られたコード カバレッジ データを IDE にインポートすることを推奨します。

要件

テスト影響分析は、IDE と統合されたバージョン管理システムに格納されたプロジェクトで利用できます。

  • Jtest 10.4 0 以降
  • Eclipse または IntelliJ IDE 2020 以降1 (サポート対象バージョンは「要件」を参照)
  • SVN または Git
  • JUnit 4 または 52

1 Java 16 以上を使用して IDE を実行している場合、[影響を受ける単体テスト] ビューに正しい結果が表示されません。回避策については「既知の制限事項」を参照してください。

2 追加の依存関係が必要です。詳細については「既知の制限事項」を参照してください。

カバレッジのインポート

できるだけ正確な結果が得られるよう、テストを実行する前に、IDE のカバレッジ ビューに変更対象ソース コードに関連するカバレッジデータが表示されていることを確認します。それには、Jtest を単体テストの実行に組み込んで、カバレッジ データを収集して XML ファイルに保存するか、DTP にレポートし、そのデータを IDE にインポートします。

単体テスト スイートを実行するごとにカバレッジ データを収集し、最新のテスト実行のデータをインポートすることで、IDE の情報が最新であることを保証できます。関連付けを更新するには、ファイルまたは DTP から IDE にカバレッジを再インポートします。

最新のテスト実行のカバレッジ データを定期的に再インポートし、関連付けがバージョン管理システム内のソース コードおよびテストと一致するようにします。

ファイルからのインポート

CI サーバーで Jtest と統合されたビルド ツール (Maven、Ant、または Gradle) を使用して単体テストを実行すると、coverage.xml ファイルが生成されます。1 回のテスト実行ですべての単体テストが実行される場合、このファイルからカバレッジ データをインポートできます。

  1. Jtest とビルドシステムを統合します (「ビルド システムとの統合」を参照)。
  2. MavenGradleAnt を使用してカバレッジ データを収集するよう単体テスト実行ジョブを設定します。ジョブを実行すると、サーバー上のジョブの場所にある coverage.xml ファイルに実行されたテストのカバレッジが保存されます。
    (tick)このファイルを容易にダウンロード可能な場所に保存するようジョブを設定します。

  3. [ローカル ファイルまたは UR Lからインポート] オプションを使用してファイルからカバレッジを IDE にインポートします (「カバレッジのインポート」を参照)。ビルド サーバーからファイルをダウンロードしてローカル ファイルのパスを指定することも、ビルド サーバーのファイルが格納されている URL を指定することもできます。

DTP からのインポート

複数のテスト実行からカバレッジを収集したい場合、DTP からカバレッジ データをインポートできます。

  1. DTP への接続を有効化します (「DTP への接続」を参照)。
  2. Jtest と Maven、Ant、または Gradle を統合します (「ビルド システムとの統合」を参照)。
  3. Jtest が DTP にカバレッジ データを送信するよう設定されていることを確認します (「単体テストのカバレッジ」を参照)。
  4. 単体テスト実行ジョブを設定します。ジョブを実行すると、実行されたテストのカバレッジ データが DTP に送信され、以前の実行のデータとマージされます。
  5. [DTP からインポート] オプションを使用してファイルからカバレッジを IDE にインポートします (「カバレッジのインポート」を参照)。

影響を受けるテストのモニターと実行

[影響を受ける単体テスト] ビューで、ローカルでのコード変更の影響を受けるテストをモニターし、再実行できます。このビューを開くには、IDE メニュー バーで [Parasoft] メニューの [ビューの表示] > [影響を受ける単体テスト] をクリックします。

影響を受けるテストのモニター

Jtest はワークスペース内で開かれているすべてのプロジェクトを自動的にモニターします。デフォルトでは、現在のコード変更の影響を受けるテストがリアルタイムでビューに表示されます。テストに影響を受けるコード変更を行うたびに、ビューがリフレッシュされて該当テストを表示します。影響を受けるテストの自動検出をオフにするには、ビューのメニューで [影響を受けるテストを自動検出] オプションをオフにします。

このオプションがオフの場合、[リフレッシュ] ボタンをクリックして手動でビューをリフレッシュする必要があります。

(info) 検出されたテストを右クリックして [移動] をクリックすると、エディターでテスト コードを参照できます。

また、[影響を受けるテスト] ビューには以下も表示されます。

  • 影響を受けるテストを含むプロジェクトの数
  • 影響を受けるテスト メソッドおよびテスト クラスの合計
  • テストの現在のステータス (成功/失敗/未実行)

影響を受けるテストの実行

ビューに表示されているすべての影響を受けるテストを実行するには、ビューのメニューの [すべてのテストを実行] ボタンをクリックします。

影響を受けるテストの一部を実行するには、解析するプロジェクト、パッケージ、クラス、および/またはメソッドのノードを選択し、ビュー メニューの [選択されたテストの実行] をクリックします。

または、選択対象を右クリックして [選択されたテストの実行] をクリックすることもできます。

デフォルト以外のパッケージの public ではない JUnit 5 のテスト クラスは、影響を受ける単体テスト ビューで実行できません。それらは利用できないクラスとしてビューに表示されます。

カバレッジ情報の更新

[影響を受ける単体テスト] ビューから実行したテストは、カバレッジ データを更新しません。更新されたカバレッジ結果を参照するには、単体テスト アシスタント ビューから、または Jtest テスト コンフィギュレーションを使用してテストを実行します (「JUnit テストの実行とカバレッジの収集」を参照)。

(info) リソースを解析している間、Jtest は影響を受けるテストの情報を保存し、選択されたテスト メソッドを実行するために、プロジェクトのデフォルト パッケージに 2 つの .java クラスを作成します。これらのファイルをソース管理システムにコミットしないでください。利便性のため、これらのファイルを .gitignore ファイル (Git の場合) に追加するか、すべてのプロジェクトで svn:ignore プロパティを設定する (SVN の場合) ことを検討するとよいでしょう。

  • No labels