GitHub Copilotでテストコードを自動生成する方法|/testsコマンドと活用のコツ【2026年版】
GitHub Copilotは、関数を選んでコマンドを実行するだけでユニットテストのひな型を自動生成できます。手書きでは面倒なテストの土台づくりを短時間で終わらせ、開発者はテスト内容の確認と調整に集中できます。この記事では、Copilot Chatの/testsコマンドを中心にしたテストコードの自動生成手順、対応言語、無料プランや他のAIツールとの比較、そして生成したテストを使うときの注意点までを2026年時点の情報で解説します。
まとめ:Copilotでのテスト自動生成の要点
GitHub Copilotでテストコードを自動生成する最短ルートは、テストしたい関数を選択してCopilot Chatで/testsと入力することです。これだけで、対象の構造に応じたユニットテストのひな型が提案されます。インライン補完やコメントからの生成でも書けますが、まとまったテストスイートを作るなら/testsが便利です。対応言語はPython・JavaScript・TypeScriptなど主要言語を幅広くカバーし、VS Code・Visual Studio・JetBrainsで使えます。無料で試したい場合はCopilot Freeプランがあり、本格利用は有料プランに移行します。ただし生成されたテストはそのまま信用せず、テスト観点の抜けや誤りを必ず人がレビューする前提で使うのが鉄則です。以下で手順と注意点を詳しく見ていきます。
GitHub Copilotのテストコード自動生成とは|できること
GitHub Copilotは、Microsoftとギットハブが提供するAIコーディング支援ツールです。コード補完だけでなく、既存の関数やクラスを読み取って、それに対応するユニットテストを生成できます。具体的には、正常系のテストに加え、境界値や例外ケースのテストの下書きまで提案してくれるため、テストの抜け漏れに気づくきっかけにもなります。Copilotの機能全体はGitHub Copilotの概要と主な機能で整理していますが、テスト生成に関わるのは主にCopilot Chatとインライン補完の2つです。対話形式で指示できるGitHub Copilot Chatを使うと、テスト生成の精度と柔軟性が上がります。
テストコードを自動生成する方法
テスト生成には複数の入り口があります。実務で使いやすい順に紹介します。
Copilot Chatの/testsコマンドで生成する
最も手軽なのが、Copilot Chatのスラッシュコマンド/testsです。テスト対象の関数をエディタで選択し、Copilot Chatに/testsと入力すると、選択範囲に対応するユニットテストが提案されます。VS CodeではサイドバーのアイコンでChatビューを開く方法と、エディタ内でCtrl+I / Cmd+Iを押してインラインチャットを開く方法があり、どちらでも/testsを実行できます。たとえば次のような関数があるとします。
function calculateDiscount(price, rate) {
if (price < 0 || rate < 0 || rate > 1) {
throw new Error('invalid');
}
return Math.round(price * (1 - rate));
}
この関数を選択して/testsを実行すると、正常系・境界値・例外系を含む次のようなテストが生成されます(Jestの例)。
test('割引が正しく計算される', () => {
expect(calculateDiscount(1000, 0.2)).toBe(800);
expect(calculateDiscount(1000, 0)).toBe(1000);
});
test('不正な割引率で例外を投げる', () => {
expect(() => calculateDiscount(1000, 1.5)).toThrow();
});
生成されたテストのアサーション内容は、実際に値が一致するかをこちらで検証して確定させます。上記の期待値はいずれも関数の仕様どおりで、テストとして成立します。テストの書き方の好み(命名規則や使用フレームワーク)を統一したい場合は、copilot-instructions.mdにルールを書いておくと、生成されるテストの体裁をそろえられます。
インライン補完・コメントからの生成
テストファイルを開いてテスト関数を書き始めると、Copilotがインライン補完で続きを提案します。Tabで採用、Escで却下です。また、テストファイルに「calculateDiscountの正常系と例外系のテスト」といったコメントを書くと、コメントを手がかりにテストコードを生成します。さらに、複数ファイルにまたがる作業を任せたい場合は、AIがタスクを自動で進めるエージェントモードも選択肢になります。エージェントモードの詳細はGitHub Copilotのエージェントモードとはを参照してください。
テストコード自動生成AIツールの比較|Copilotと無料の選択肢
「テストコード生成は無料でできないか」という観点もよく検索されます。GitHub Copilotには機能制限付きの無料プラン(Copilot Free)があり、個人がテスト生成を試す範囲なら無料で始められます。本格的にチームで使うなら有料プランに移行します。主要な選択肢を整理します。
| ツール | 無料利用 | テスト生成の方法 |
|---|---|---|
| GitHub Copilot | 無料プランあり | /testsコマンド・Chat |
| Copilot有料プラン | 有料 | 制限なしで上記利用 |
| Amazon Q Developer | 無料枠あり | IDEでテスト生成 |
| ChatGPT等の汎用AI | 一部無料 | コードを貼り依頼 |
AWS連携が多い環境ならAmazon Q Developerの無料枠でもユニットテストを生成でき、ChatGPTなどの汎用AIにコードを貼り付けてテストを書かせる方法も無料枠で可能です。ただし、エディタ内で対象を選んで即生成できるCopilotの/testsのほうが、開発フローを止めずに済みます。料金やプランの内容は改定されることがあるため、最新は公式の料金ページで確認してください。VS Codeへの導入手順はVS CodeでGitHub Copilotを使うには【2026年版】にまとめています。
自動生成したテストコードを使うときの注意点
Copilotのテスト生成は強力ですが、生成結果をそのまま信用するのは危険です。実務で必ず押さえるべき注意点を挙げます。
第一に、生成されたテストは「通ること」を目的に作られがちで、本当に検証すべき観点が抜けることがあります。境界値や異常系が網羅されているかは人が確認してください。第二に、テストが多く生成されてもカバレッジの数字が上がるだけで、品質が上がったと錯覚しないことです。意味のない重複テストは削るべきです。第三に、仕様の取り違えです。Copilotはコードの見た目から意図を推測するため、実装にバグがあるとバグごと「正」としてテストしてしまいます。テスト生成の前に、対象コードの仕様が正しいかを先に確認するのが安全です。また、運用面では2点補っておくと効果的です。生成したテストはGitHub ActionsなどのCIに組み込み、変更のたびに自動実行する仕組みにすること。そして、データベースや外部APIに依存する関数のテストは、Copilotが生成した雛形に対してモック(スタブ)化を人が追加し、外部状態に左右されないようにすることです。結論として、Copilotは「テストの下書きを高速に作る道具」であり、テスト設計の責任は人にある、という前提を崩さないことが、品質を担保する唯一の方法です。
よくある質問
GitHub Copilotでテストコードは自動生成できますか?
できます。Copilot Chatでテスト対象の関数を選択し/testsコマンドを実行すると、ユニットテストのひな型が自動生成されます。インライン補完やコメントからの生成にも対応しています。
/testsコマンドの使い方を教えてください。
テスト対象の関数やコードをエディタで選択し、Copilot Chatを開いて/testsと入力します。Chatビューはサイドバーのアイコンから、インラインチャットはエディタ内でCtrl+I / Cmd+Iで開け、どちらでも実行できます。選択範囲の構造に応じたテストが提案されるので、内容を確認して採用します。
GitHub Copilotは無料でテスト生成に使えますか?
機能制限付きの無料プラン(Copilot Free)があり、個人が試す範囲なら無料でテスト生成を利用できます。利用量の上限を超える本格利用や組織での利用は有料プランになります。最新のプラン内容は公式で確認してください。
どのプログラミング言語に対応していますか?
Python・JavaScript・TypeScript・Ruby・Go・C#・C++など主要な言語に対応しています。VS Code・Visual Studio・JetBrains系IDEで利用でき、各言語の一般的なテストフレームワーク(Pythonならpytest、JavaScript・TypeScriptならJest、RubyならRSpec、JavaならJUnitなど)に沿ったテストを生成できます。
テスト駆動開発(TDD)にも使えますか?
使えます。先にテストの意図をコメントや関数名で示し、Copilotにテストの下書きを生成させてから実装を進める形でTDDを効率化できます。ただし生成されたテストの観点が妥当かは人がレビューする必要があります。