ゴースト テキストを使用してテストを拡張し、失敗したテストを修正する
テスト プロジェクトにいくつかのテスト ケースが含まれると、GitHub Copilotは、カバレッジを拡張し、Visual Studio Codeを離れることなくエラーを解決するのに役立ちます。 ゴースト テキストの提案では、編集中のファイル内にテスト ケースが追加されますが、テスト エクスプローラーと /fixTestFailure スラッシュ コマンドは、失敗したテストの診断と修正に役立ちます。 これらの機能は、チャット ビューで開始した単体テスト ワークフローのループを閉じます。
ゴースト テキストの候補を使用してテスト カバレッジを拡張する
ゴースト テキストは、エディターで入力するときに表示されるインライン コード補完です。 テスト ファイルに既にいくつかのテスト ケースが含まれている場合、GitHub Copilotは既存のパターンを使用して、追加のシナリオで同様のテスト ケースを提案します。 これは、最初のテストが実施された後にカバレッジを拡張する最速の方法です。
ゴースト テキストを使用してテスト ファイルを拡張するには:
少なくとも 1 つまたは 2 つの完全なテスト ケースを含むテスト ファイルを開きます。
最後のテスト ケースの末尾にカーソルを置き、 Enter キーを押して新しい行を開始します。
新しいテスト メソッドの入力を開始するか、
// Test that ProcessOrder throws when the order total is negativeなどの説明的なコメントを記述します。GitHub Copilotは、周囲のコード、インポート、および既存のテスト パターンに基づいてテスト メソッドを完了するゴースト テキストの提案を表示します。
Tab キーを押して提案を受け入れるか、Esc キーを押して閉じます。
必要に応じて、受け入れられた提案を絞り込みます。 引き続き入力してテストを拡張することも、 Enter キーを押して次のゴースト テキスト候補をトリガーすることもできます。
ゴースト テキストは、次の場合に最適です。
- テスト ファイルには、GitHub Copilotに従うパターンが既に表示されています (たとえば、Arrange-Act-Assert 構造体やパラメーター化されたテスト属性)。
- テスト対象のメソッドは、
usingディレクティブまたはインポートされた名前空間を介してファイル内で参照されます。 - コメントには、テストするシナリオが明確に示されています。
Tip
ゴースト テキストを使用して、エッジ ケースをすばやく既存のテスト クラスに追加します。 まったく新しいテスト クラスの作成など、より多くの作業を行うには、チャット ビューに戻り、Ask、Plan、または Agent エージェントを使用します。
テスト エクスプローラーから失敗したテストを修正する
テストが失敗した場合、テスト エクスプローラーは、GitHub Copilotにワンクリックのエントリ ポイントを提供します。
テスト エクスプローラーまたはテスト メソッドの横にある緑色の再生ボタンからテストを実行します。
テスト エクスプローラーで、失敗したテストにカーソルを合わせます。
[ テスト エラーの修正 ] ボタン (スパークル アイコン) を選択します。
GitHub Copilotチャット セッションを開き、失敗したテストとその出力をコンテキストとしてアタッチし、修正を提案します。
提案された修正プログラムを確認します。
提案では、エラーの原因に応じて、アプリケーション コード、テスト コード、またはその両方を更新できます。
提案を適用または破棄します。
[保持] を使用して提案された変更を適用するか、[元に戻す] を使用してそれらを破棄します。 テストを再実行して修正を確認します。
/fixTestFailure で失敗しているテストを修正する
チャット ビューから修正ワークフローを開始することもできます。これは、追加のコンテキストをアタッチする場合や、一度に複数の失敗したテストを実行する場合に便利です。
チャット ビューを開きます。
/fixTestFailureスラッシュ コマンドを入力します。必要に応じて、関連するソース ファイルや最近のターミナル出力などの追加のコンテキストをアタッチします。
GitHub Copilotの提案に従って失敗したテストを修正し、テストを再実行して修正を確認します。
エージェントがエラーを自動的に監視して修正できるようにする
エージェントを使用してテストを実行すると、テスト出力が監視され、エラーが識別され、テストの修正と再実行が自動的に試行されます。 これは、新しいテスト プロジェクトをスキャフォールディングする場合や、多数のテストに一度に影響する大きな変更を加える場合に便利です。
自動テスト メンテナンスにエージェントを使用するには:
チャット ビューを開き、エージェント ピッカーから [エージェント ] を選択します。
次のようなテストの実行を含むプロンプトを指定します。
Run the xUnit tests in the Calculator.Tests project. If any tests fail, propose and apply fixes, then rerun the tests until they pass.エージェントが提案するツールの呼び出しとターミナル コマンドを確認または拒否します。
エージェントを受け入れる前に、エージェントが適用した変更を確認します。
ジョブに適したツールを選択する
使用する機能を決定するには、次のガイダンスを使用します。
- ゴースト テキスト は、パターンが既に表示されている既存のテスト ファイルにテスト ケースを追加する場合に最適です。
- テスト エクスプローラーでのテスト失敗の修正 は、1 つのテストが失敗し、迅速かつ重点的な修正が必要な場合に最適です。
-
チャット ビューの
/fixTestFailureは、追加のコンテキストをアタッチしたり、いくつかのエラーを処理したりする場合に最適です。 - エージェント駆動型テストの実行は、GitHub Copilotでテストを実行し、エラーを診断し、1 つのセッション内の複数のファイルに対して修正プログラムを適用する場合に最適です。
これらのツールを組み合わせることで、単体テストワークフローが完了します。 Chatビュー、Planエージェント、Agent が初期テストを生成し、ゴーストテキストが追加のカバレッジを補完します。さらに、テスト失敗修正機能により、コードの変化に合わせてもテストスイートをグリーンな状態に保てます。