GitHub Copilotのテスト
テストの記述と維持は、ソフトウェア開発において極めて重要であると同時に、時間を要する作業でもあります。GitHub Copilotは、Visual Studio Codeでより効率的にテストを作成、デバッグ、修正するのに役立ち、このプロセスを効率化します。この記事では、Copilotのテスト機能を活用して、テストワークフローを改善し、プロジェクトのテストカバレッジを向上させる方法について説明します。
Copilotは以下のテストタスクをサポートします
- テストフレームワークのセットアップ: プロジェクトと言語に適したテストフレームワークとVS Code拡張機能の構成を支援します。
- テストコードの生成: アプリケーションコードをカバーする単体テスト、統合テスト、エンドツーエンドテストを作成します。
- エッジケースの処理: エッジケースとエラー条件をカバーする包括的なテストスイートを生成します。
- 失敗したテストの修正: テストの失敗を修正するための提案を受け取ります。
- 一貫性の維持: プロジェクトのコーディング規約に従ってテストを生成するようにCopilotをパーソナライズします。
Copilotサブスクリプションをお持ちでない場合でも、Copilot無料プランにサインアップすることで、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の一般的なテスト機能を探索してください。
- 単体テストを生成するためのプロンプトの例を確認してください。