Jtest の変更ベースのテスト機能は、ローカルでのコードの変更の影響を受けるテスト ケースを自動的に検出することで、テスト作業の効率化を支援します。これにより、変更の影響を受けるテストだけを識別して再実行し、影響を受けない多数のテストが壊れていないかを確かめるために実行する時間を節約することができます。

前提条件

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

  • Jtest 10.4.0 以降
  • Eclipse IDE (「前提条件」を参照)
  • SVN または Git

現時点では、変更ベースのテストは JUnit 4 のテストでだけサポートされています。

カバレッジのインポート

テストを実行する前に、IDE のカバレッジ ビューに変更対象ソース コードに関連するカバレッジデータが表示されていることを確認します。それには、Jtest を単体テストの実行に組み込んで、カバレッジ データを収集して XML ファイルに保存するか、DTP にレポートし、そのデータを IDE にインポートします。単体テスト スイートを実行するごとにカバレッジ データを収集し、最新のテスト実行のデータをインポートすることで、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 にインポートします(「カバレッジのインポート」を参照)。

テストの実行

  1. プロジェクト エクスプローラーでリソース (プロジェクト、パッケージ、クラス、メソッド) を右クリックして [単体テスト] > [ローカル変更の影響を受けるテストを実行] をクリックし、選択されたリソース ファイルの変更によって影響を受ける単体リストの一覧を表示します。または、エディターでクラスを右クリックしてコンテキスト メニューの  [単体テスト] > [ローカル変更の影響を受けるテストを実行] をクリックします。

    Jtest がリソースを解析して影響を受けるテストを識別する間、進捗ビューで進捗をモニターできます。

    プロジェクト、パッケージ、クラス、テスト メソッドを選択します。UTA は選択された単体テスト メソッドの合計数を表示します。
  2. [実行] をクリックして選択したテスト ケースを実行します。

(info) リソースを解析している間、Jtest は影響を受けるテストの情報を保存し、選択されたテスト メソッドを実行するために、プロジェクトのデフォルト パッケージに 2 つの .java クラスを作成します。これらのファイルをソース管理システムにコミットしないでください。

  • No labels