概要
単体テスト アシスタントを使用すると、単体テスト アシスタント ビューまたは IDE のコンテキスト メニューの [テスト スイートの作成] オプションをクリックすることで、簡単にテスト スイートを作成できます。[テスト スイートの作成] オプションをクリックすると、UTA は以下を行います。
- 選択されたスコープ内のメソッドを解析する。
- テスト ケースを作成する。
- (任意) AI を使用し、より適切な変数値を作成したり、失敗する生成済みテストの修正を試みたりすることで、生成済みのテストを拡張する。(UTA は、失敗していても一定のカバレッジの増加に寄与する場合、少数の失敗するテストを生成する可能性があります。このステップでは、UTA は AI を使用して失敗するテストを更新し、テストが成功するようにします。)
この機能を使用するには、次の操作を行います。
- Parasoft 設定で LLM プロバイダーを設定する必要があります (「LLM プロバイダーの設定」を参照)。
- UTA 設定で [生成済みテストを AI で拡張 (LLM プロバイダーの設定が必要)] オプションを有効にする必要があります (「テスト作成オプション」を参照)。
この機能は LLM を利用しているため、不正確な情報を生成する可能性があります。 [トラックしてアサーションを作成] 機能を使用して作成済みテストを実行し、アサーションを追加する (「オブジェクトの変更の追跡とアサーションの作成」を参照)。
Eclipse IDE を使用している場合、アサーションを追加するには、[Build Automatically] オプション ([プロジェクト] メニューの[Build Automatically]) をオンにする必要があります。このオプションがオフの場合、テスト実行時にアサーションは追加されません。
UTA によって作成されたテスト ケースをカスタマイズするには、テスト コードの値とアサーションを確認し、必要に応じて変更します。さらに、[実行] オプションでテストを再実行し、UTA の推奨事項を使用してテスト ケースを拡張できます (「単体テスト アシスタントを使用した単体テストの実行」を参照)。
1 つのファイルに対してテスト スイートを作成
以下のいずれかの方法で [単体テスト アシスタント - テスト スイートの作成] ダイアログを開きます。
エディターでクラスを選択し、単体テスト アシスタント ビューの [テスト スイートの作成] アクション リンクをクリックします。
プロジェクト エクスプローラーでファイルを右クリックし、コンテキスト メニューの [単体テスト] > [テスト スイートの作成] をクリックします。
テスト作成オプションを設定します。
テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
- 最大コード カバレッジ - UTA はできるだけ多くのメソッド実行パスをカバーするのに必要な数のテストを作成します。このオプションを有効にすると、最大のカバレッジ率を達成するのに役立ちますが、テスト ケースが複雑になったり重複する可能性があり、メンテナンスに影響を与える場合があります。一部のテストは初期生成の後は失敗し、構成を完全にするには人間の介入を必要とする場合があります。
- テスト スイートの保守性 - UTA は完全に構成され、実行時に成功する可能性がより高い少数のテストを生成します。このオプションを有効にすると、より単純で保守性の良いテストを作成するのに役立ちますが、カバレッジ率は低くなる可能性があります。モックの初期化 - モックの初期化方法を指定します。
- テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
- @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。詳細については「モック初期化の設定」を参照してください。- テスト テンプレート - 新規クラスの作成に使用するテンプレートを指定します。詳細については「テスト テンプレートの設定」を参照してください。
次のテスト ケースを作成: - テスト ケースを作成するメソッドを選択します。[すべて選択]、[すべて選択解除]、または [変更の選択 (*)] ボタンを使用してリスト内の選択項目を更新できます。[変更の選択 (*)] ボタンは、ソース管理システムで変更されたメソッド (アスタリスクが付いたメソッド) だけを選択します。
注意: 変更されたメソッド検出機能が正しく動作するには、Eclipse および IntelliJ がプロジェクトを Git プロジェクトとして認識できる必要があります。
- [OK] をクリックします。UTA の動作:
- UTA ファイル内の選択されたすべてのメソッド (すでにテストが存在するメソッドも含む) に対して新規テスト ケースを追加します。
- テストを実行してアサーションを作成します。
- テストを確認し、必要に応じて値やアサーションを変更します。
- UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。
複数のファイルに対してテスト スイートを作成
UTA は複数のファイルのテスト ケースを作成することもできます。指定されたファイル セット内のすべてのメソッドに対してテストを作成することも、選択した比較条件に基づいて、変更されたメソッドに対してだけテストを作成することもできます。
- テスト ケースを作成するファイル、パッケージ、プロジェクトを右クリックします。また、同一クラス内の個々のメソッドを選択することもできます (クラスが異なるメソッドを選択した場合、またはメソッドとクラスまたはパッケージを選択した場合、テスト ケースは作成されません)。
[単体テスト] > [テスト スイートの作成] をクリックして[単体テスト アシスタント - テスト スイートの作成] ダイアログを開きます。
- テスト作成オプションを設定します。
- テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
- 最大コード カバレッジ - UTA はできるだけ多くのメソッド実行パスをカバーするのに必要な数のテストを作成します。このオプションを有効にすると、最大のカバレッジ率を達成するのに役立ちますが、テスト ケースが複雑になったり重複する可能性があり、メンテナンスに影響を与える場合があります。一部のテストは初期生成の後は失敗し、構成を完全にするには人間の介入を必要とする場合があります。
- テスト スイートの保守性 - UTA は完全に構成され、実行時に成功する可能性がより高い少数のテストを生成します。このオプションを有効にすると、より単純で保守性の良いテストを作成するのに役立ちますが、カバレッジ率は低くなる可能性があります。 モックの初期化 - モックの初期化方法を指定します。
- テスト メソッド内で設定 - テスト対象オブジェクトおよびその依存関係をテスト メソッド内で宣言して初期化することでモックを初期化します。
- @InjectMocks の使用 - @InjectMocks アノテーションを使用してモック インジェクションを実行するフィールドをマークし、@Mock を使用して依存関係をマークすることでモックを初期化します。詳細については「モック初期化の設定」を参照してください。- テスト テンプレート - 新規クラスの作成に使用するテンプレートを指定します。詳細については「テスト テンプレートの設定」を参照してください。
- 次のテスト ケースを作成 - テスト ケースを作成するメソッドを選択します。
- すべて選択 - 選択対象内のすべてのソース ファイルに対してテスト ケースが作成されます。
- ローカルで変更されたメソッド - 選択対象内の変更されたメソッドに対してだけテスト ケースが作成されます。- 次と比較時 - ディスクのファイルと指定されたコミットの内容を比較したときに見つかったすべての変更されたメソッドに対してテストが作成されます。
- 次からの現行ブランチの分岐以降 - 指定されたブランチからプロジェクトの現行ブランチが分岐した後、現行ブランチで見つかったすべての変更されたメソッドに対してテストが作成されます。現行ブランチの作成元ブランチを指定する必要があります。
- コミットまたはブランチ - [次と比較時] および [次からの現行ブランチの分岐以降] 設定で使用するコミット、ブランチ、タグを指定します。コミットまたはブランチ ドロップダウン メニューには入力履歴が残ります。選択肢には [次と比較時] 設定のための 2 つのプリセット値が含まれます。
- ローカル ブランチでの最新コミット - ローカルで変更されたコミット前のコードに対してテストが作成されます。
- リモート ブランチでの最新コミット - ローカルで変更されたコミット前のコードおよびまだリモート ブランチにプッシュされていないローカル コミットに含まれる変更に対してテストが作成されます。
注意:
Git reflog 参照はサポートされていません。
[ローカルで変更されたメソッド] および [コミットまたはブランチ] 設定を使用する場合、以下の推奨事項を考慮してください。
ローカルな変更だけがあり、影響を受けるコードに対してコミット前にテストを生成したい場合、[次と比較時] および [ローカル ブランチでの最新コミット] 設定を使用することを推奨します。
まだプッシュされていないローカル コミットがあり、ローカルな変更に加えてそれらのコミットに対してテストを生成したい場合、[次と比較時] および [リモート ブランチでの最新コミット] 設定を使用することを推奨します。
フィーチャーまたは開発ブランチとしてブランチにコミットをプッシュ済みであり、フィーチャーまたは修正が完了しており、該当ブランチで行われたすべての変更に対してテストを生成したい場合、[次からの現行ブランチの分岐以降] 設定を使用し、現行ブランチの親ブランチを指定することを推奨します。たとえば、master から分岐した "feature/foo" フィーチャー ブランチを使用している場合、"master" を指定します。
- 選択されたコードに対して Git リポジトリが設定されていない場合、[ローカルで変更されたメソッド] および [コミットまたはブランチ] 設定は使用できません。
- テスト スイートの最適化- 選択されたメソッドに対してテストを作成する際の優先順位を指定します。
- (任意) [ライセンス使用状況のサマリー] オプションの上にカーソルを位置付け、選択されたリソースのテスト ケース作成に必要な見積りトークン数を表示します。テストが生成されると、サマリー ダイアログが開き、実際に消費されたトークンの数と、残りのトークンの数が表示されます (「ライセンス」を参照)。
- [OK] をクリックします。UTA の動作:
- テストできないファイルやテスト クラスがすでに存在するファイルをスキップしてテスト ケースを作成します。
- テストを実行してアサーションを作成します。
- UTA を使用してテストを実行し、カバレッジ情報と可能な改善に関する推奨事項を収集します (詳細については「単体テスト アシスタントを使用した単体テストの実行」を参照)。
ライセンス
ローカルまたはリモート ブランチと比較して変更されたメソッドに対してだけテストを生成するには、「Unit Test Single Class Creation」ライセンス機能が必要です。このシナリオでは、ライセンス トークンは消費されません。選択範囲全体のテスト生成、指定されたコミットまたはブランチと比較して変更されたメソッドに対するテスト生成、現在のブランチが指定されたコミットまたはブランチから分岐した後に変更されたメソッドに対するテスト生成を実行するには、いずれかの「Unit Test Bulk Creation Tier」ライセンス機能が必要です。これらの機能は、テスト ケースが生成されたファイル数に基づいて消費されるライセンス トークンを提供します (トークンの数は、ライセンス契約に依存します)。これらのシナリオでは、UTA はテストが生成された .java ファイルごとに 1 つのトークンを消費します。
- UTA がテスト ケースを生成しなかったファイル (インターフェイスや抽象クラスなど) については、トークンは消費されません。
- 特定の java ファイルに対して 1 回トークンが消費されると、最初のテストが削除されていても、テストの再生成によってトークンは消費されません。
潜在的なセットアップの問題
一括生成の結果が不適切な場合、プロジェクトにセットアップの問題がある場合があります。詳細については、「潜在的なセットアップの問題を診断する方法」を参照してください。



