プラン モードとエージェント モードを使用してテスト ワークフローを計画および自動化する
前のユニットでは、エージェント モードを使用して、1 つのチャット ビュー プロンプトからテストを生成しました。 多くの場合、大規模なテスト タスクでは、何をテストするかの決定、テスト プロジェクトのスキャフォールディング、複数のファイル間でのテストの生成、結果のスイートの実行など、より多くの構造が必要になります。 [チャット] ビューの プラン エージェントと長い エージェント セッションは、そのレベルの作業用に設計されています。 Plan エージェントを使用して、コードを記述する前にテスト戦略を設計し、承認された計画をエージェントに渡して自律的なマルチステップ実装を行います。
Ask、Plan、および Agent エージェントを比較する
チャット ビューには、3 つの組み込みのローカル エージェントが用意されています。 それぞれ異なる種類のテスト タスク用に最適化されています。
| エージェント | 最適な用途 | 単体テストでの一般的な使用 |
|---|---|---|
| 質問する | コードに関する閲覧専用の分析とQ&A | コードを記述する前に、エッジ ケース、フレームワークの選択肢、またはテスト例を調べる。 |
| Plan | 構造化されたステップ バイ ステップの実装計画 | 実装前に確認できるマルチファイル テスト戦略を設計します。 |
| Agent | 自律的なマルチファイル コーディング ワークフロー | テスト プロジェクトに直接テストを生成し、それらを実行し、エラーを繰り返します。 |
Chat ビューのエージェント ピッカーでエージェントを選択します。 セッション中はいつでもエージェントを切り替えることができます。
Important
エージェントでチャット ビューを使用する場合、GitHub Copilotは 1 つのタスクを完了するために複数の Premium 要求を行う場合があります。 Premium 要求は、ユーザーが開始するプロンプトと、エージェントがユーザーに代わって実行するフォローアップ アクションの両方で使用されます。 使用される Premium 要求の合計数は、タスクの複雑さ、ステップの数、選択したモデルによって異なります。
Plan エージェントを使用してテスト戦略を設計する
Plan エージェントは、コードを記述する前に詳細な実装計画を作成します。 エージェントは、あなたのタスクについて調査し、確認のための質問を行い、あなたが確認して調整したうえでエージェントに引き継げる段階的な計画を提案します。
一連の単体テストを計画するには:
テストするコードを含むファイルを開きます。
チャット ビューを開き、エージェント ピッカーから [プラン ] を選択します。 または、「
/plan」と入力し、タスクの説明を入力します。作成するテストを説明するプロンプトを入力します。 例えば次が挙げられます。
I need unit tests for the methods in the Calculator class. Use xUnit. Include tests for success, failure, and boundary conditions. Place the new tests in the Calculator.Tests project.明確な質問に回答します。
プラン エージェントは、テスト フレームワークの基本設定、名前付け規則、または計画を下書きする前に依存関係を処理する方法について尋ねる場合があります。
提案された計画を確認します。
通常、このプランには、概要、ステップの内訳、テストを実行するための検証手順、文書化された意思決定が含まれます。 作成したい内容がプランに反映されるまで、Plan エージェントと繰り返しやり取りします。
実装に向けた計画を引き渡す。
プランが最終版になったら、実装を開始するオプションを選択します。 同じチャット セッションにプランを実装することも、バックグラウンドまたはクラウド セッションを開始して実装に自律的に取り組むことができます。 さらに確認するために、エディターでプランを開くこともできます。
Plan エージェントは、テスト タスクが複数のファイルにまたがる場合、新しいテスト クラスまたはフィクスチャが必要な場合、または手順でまだキャプチャされていないチーム規則に合わせる必要がある場合に特に便利です。
エージェントを使用してテスト ワークフローを自動化する
エージェントは、ワークスペース全体で複数ステップのタスクを自動化します。 単体テストでは、エージェントを使用して、テスト プロジェクトのスキャフォールディング、テスト ファイルの作成、結果のテストの実行、テスト レポートの生成、テストの実行中に発生する問題の修正を行うことができます。
エージェントを使用して単体テストを作成して実行するには:
テストするコードを含むファイルを開きます。
チャット ビューを開き、エージェント ピッカーから [エージェント ] を選択します。
エージェントがコンテキストを特定できるようにします。
エージェントを使用すると、GitHub Copilotは関連するファイルを自動的に識別します。 [コンテキストの追加] ボタンを使用して、またはファイルをチャット ビューにドラッグして、追加の コンテキスト をアタッチすることもできます。
必要に応じて、[ ツール ] アイコンを選択して、エージェントがタスクに使用できるツールを選択します。
タスクをテストするための便利なツールには、ファイル編集ツール、
dotnet testを実行するためのターミナル ツール、拡張機能が提供するテスト ツールなどがあります。タスクを定義するプロンプトを入力します。 例えば次が挙げられます。
Ensure that a suitable unit test project is prepared for the selected code file. Create a test file in the unit test project that includes unit tests for all methods in the selected file. Unit tests should be written in C# and use the xUnit framework. Run the tests to ensure expected results.エージェントの動作を監視します。
- エージェントが提案するツールの呼び出しとターミナル コマンドを確認または拒否します。 たとえば、テストを実行するコマンドやテスト レポートを生成するコマンドを確認できます。
- コンテキストの変更、ツールの切り替え、タスクのスコープの調整が必要な場合は、エージェントを中断します。
エージェントが作成または更新したファイルを確認し、変更を保持または破棄します。
必要に応じて、フォローアップ プロンプトを使用して特定のテストを絞り込みます。
プラン、エージェント、またはその両方を使用するタイミングを決定する
エージェントを選択するには、次のガイダンスを使用します。
- テスト作業にあいまいさ、複数のファイル、または確認が必要なチーム規則が含まれる場合は、まず Plan エージェントを使用します。 計画は、コードを記述する前に確認できるコントラクトになります。
- Agent を直接使用します。これは、タスクが明確に定義されていて、途中の計画ステップを挟まずに GitHub Copilot にコードのひな形を作成させ、生成させ、テストを実行させたい場合に適しています。
- レビュー可能な計画と自律的な実装が必要な場合は、[プラン] を使用し、エージェントに引き渡します。 この組み合わせにより、作業を自動化しながらスコープを最大限に制御できます。