GitHub Copilot を使ったテスト
テストの記述と保守は、ソフトウェア開発において極めて重要であるものの、往々にして時間がかかる部分です。GitHub Copilot は、Visual Studio Code でテストをより効率的に記述、デバッグ、修正するのに役立ち、このプロセスを効率化します。この記事では、Copilot のテスト機能を活用して、テストワークフローを改善し、プロジェクトのテストカバレッジを向上させる方法を紹介します。
Copilot は、以下のテストタスクを支援できます。
- テストフレームワークのセットアップ: プロジェクトと言語に適したテストフレームワークと VS Code 拡張機能の構成を支援します。
- テストコードの生成: アプリケーションコードをカバーする単体テスト、統合テスト、エンドツーエンドテストを作成します。
- エッジケースの処理: エッジケースとエラー条件をカバーする包括的なテストスイートを生成します。
- 失敗したテストの修正: テストの失敗を修正するための提案を受け取ります。
- 一貫性の維持: プロジェクトのコーディング慣行に従ってテストを生成するように Copilot をパーソナライズします。
Copilot サブスクリプションをお持ちでない場合は、Copilot Free プランにサインアップすると Copilot を無料で利用でき、補完とチャット対話に毎月の制限が適用されます。
テストフレームワークのセットアップ
テストワークフローを加速するために、Copilot はプロジェクトのテストフレームワークと VS Code 拡張機能のセットアップを支援できます。Copilot は、プロジェクトの種類に基づいて適切なテストフレームワークを提案します。
- チャットビューを開きます (⌃⌘I (Windows、Linux Ctrl+Alt+I))。
- チャット入力フィールドに
/setupTestsコマンドを入力します。 - Copilot のガイダンスに従ってプロジェクトを構成します。
Copilot でテストを作成する
Copilot は、コードベースをカバーするテストコードを生成することで、アプリケーションコードのテスト作成を支援できます。これには、単体テスト、エンドツーエンドテスト、エッジケースのテストが含まれます。
チャットプロンプトを使用する
-
アプリケーションコードファイルを開きます。
-
次のビューのいずれかを開きます。
- チャットビュー (⌃⌘I (Windows、Linux Ctrl+Alt+I))
- インラインチャット (⌘I (Windows、Linux Ctrl+I))
-
次のようなプロンプトを入力します。
- "このコードのテストを生成してください"
- "エッジケースを含む単体テストを記述してください"
- "このモジュールの統合テストを作成してください"
GitHub ドキュメントのGitHub Copilot を使用したテストの記述に関する詳細なガイダンスをご覧ください。
エディタのスマートアクションを使用する
プロンプトを記述せずにアプリケーションコードのテストを生成するには、エディタのスマートアクションを使用できます。
-
アプリケーションコードファイルを開きます。
-
必要に応じて、テストするコードを選択します。
-
右クリックして、コードの生成 > テストの生成を選択します。
Copilot は、既存のテストファイルにテストコードを生成するか、存在しない場合は新しいテストファイルを作成します。
-
必要に応じて、インラインチャットプロンプトで追加のコンテキストを提供することで、生成されたテストを微調整します。
失敗したテストの修正
Copilot は VS Code のテストエクスプローラーと統合されており、失敗したテストの修正を支援できます。
- テストエクスプローラーで、失敗したテストにカーソルを合わせます。
- テスト失敗を修正ボタン (スパークルアイコン) を選択します。
- Copilot の提案する修正を確認して適用します。
あるいは、次の方法も可能です。
- チャットビューを開きます。
/fixTestFailureコマンドを入力します。- Copilot の提案に従ってテストを修正します。
エージェントモードは、テスト実行時にテスト出力を監視し、失敗したテストを自動的に修正して再実行しようとします。
テスト生成のパーソナライズ
組織に特定のテスト要件がある場合は、Copilot がテストを生成する方法をカスタマイズして、基準を満たしていることを確認できます。カスタム命令を提供することで、Copilot がテストを生成する方法をパーソナライズできます。例えば、
- 推奨するテストフレームワークを指定します。
- テストの命名規則を定義します。
- コード構造の優先順位を設定します。
- 特定のテストパターンや方法論を要求します。
テスト生成のための Copilot のパーソナライズに関する詳細情報をご覧ください。
より良いテスト生成のためのヒント
Copilot でテストを生成する際に最良の結果を得るには、次のヒントに従ってください。
- 推奨するテストフレームワークについてプロンプトでコンテキストを提供します。
- 特定の種類のテスト (単体、統合、エンドツーエンド) が必要かどうかを指定します。
- 特定のテストケースやエッジケースを要求します。
- プロジェクトのコーディング標準に従うテストを要求します。
次のステップ
- VS Code の Copilot について詳しく学びます。
- VS Code の一般的なテスト機能を探ります。
- 単体テストを生成するためのプロンプトの例を確認します。