Visual Studio Codeで学ぶ!GitHub Copilot入門

第7回

プログラムができたらGitHub Copilotにテスト用コードを作成させよう

Visual Studio Codeでのテストコードの実行方法も解説

 この記事はインプレス刊『Visual Studio Codeで学ぶ!GitHub Copilot入門』(山田 裕進 著)の一部を編集・転載しています。(編集部)

プログラムができたらGitHub Copilotにテスト用コードを作成させよう

 コードを開発したあとは、テストが必要ですね。GitHub Copilotなら、単体テストなどのテストコードもすばやく作成することが可能です。

テストの準備

 ここでは、以下の条件でワークスペースが準備されているものとします。

  • Python仮想環境を作成([F1]キー→[Python: 環境の作成…]を選択→[Venv]を選択→Pythonインタプリターを選択)
  • ターミナルで「pip install pytest」コマンドを実行することでpytestをインストール
  • 「app.py」と「test_app.py」を作成

 「app.py」の内容は、以下の通りです。

from datetime import datetime
# 指定された年、月、日が有効な日付かどうかを判定します。
def is_valid_date(year, month, day):
    try:
        datetime(year, month, day)
        return True
    except ValueError:
        return False

 なお「test_app.py」は空のファイルとします。それでは、この関数のテストコードを作成してみましょう。

スマートアクションを使用したテストコードの作成

(編集部注:執筆時点ではスマートアクションでもテストコードを生成できましたが、現在はできなくなっています)

  スマートアクションを使用して、テストコードを生成できます。

 まずは関数を右クリックして[コードを生成する]→[テストを生成する]の順にクリックします。このとき、使用するテストフレームワークの構成の承諾が求められる場合があります。その際は、[承諾する]をクリックして進めます。

関数を右クリック(❶)。[コードを生成する]→[テストを生成する]の順にクリック(❷)
[承諾する]をクリック(❸)

 また、テストフレームワークの選択が求められる場合があります。 テストフレームワーク とはテストの記述と実行を支援するしくみで、Pythonではよく「pytest」が使用されます。ここでは[pytest]をクリックします。

テストフレームワークを選択(ここでは[pytest]をクリック)(❹)

 さらに、テストコード配置場所のフォルダーの選択が求められる場合があります。ここでは[.]をクリックします。

テストコード配置場所のフォルダーの選択が求められたら[.]をクリック(❺)

 すると「test_app.py」にテストコードが生成されます。コードを受け入れるには、[保持]をクリックします。そしてファイルを保存しましょう。

テストコードが生成される。[保持]をクリック(❻)。ファイルを保存(❼)

 テストは、ターミナルから「pytest」コマンドで起動できます。または、VS Code画面左の[テスト](三角フラスコのアイコン)をクリックし、[テストの実行]をクリックします

pytest
❽ターミナルで「pytest」コマンドを実行。テストが実行される

チャットビューを使用したテストコードの生成

 チャットビューを使用してテストコードを生成することも可能です。この場合、EditエージェントやAgentを使用すると、生成されたテストコードが直接適切なファイルへと出力されるので便利です。

 たとえば、「app.py」を開いた状態でチャットビューを開き、EditエージェントかAgentに切り替えます。そして、プロンプトを入力します。以下のように、詳細な指示を与えることができます。

Prompt

正常系(有効な日付)と異常系(無効な日付)の両方をカバーするpytestテストコードを生成。

テストケースには、うるう年や月・日の範囲外の値も含めること。

 なお、このプロンプトには、どの関数に対するテストコードを生成するのか、という指示が含まれませんが、問題ありません。 現在開いているファイルや、そのファイル内の選択された行が、コンテキストとして自動的にプロンプトに追加されます。 GitHub Copilotはそれに対するテストコードを生成します。

 生成されたテストコードを確認したら、[保持]をクリックして確定します。

EditエージェントやAgentでプロンプトを送信(❶)
現在の関数に対してテストコードが生成される。[保持]をクリック(❷)

 なお、テストコードの実行方法は先ほど説明した通りです。

実際のシステム開発におけるテスト例

 実際のシステム開発においては、なんらかの業務ルール(ビジネスロジック)が仕様書で定義されており、その仕様に沿ってコードを書きます。またそのコードを、あらかじめ定義されたテスト仕様書に沿ってテストします。このような場合は、どうやってGitHub Copilotでテストを生成するのでしょうか?

 たとえば、スマートフォンの料金計算を行うシステムを開発中だとします。あるプランでは以下のように料金が定義されているとしましょう。

  • 基本料金:1,500円/月
  • 通話:1回10分まで無料、10分を超えた場合は10円/30秒
  • データ通信:20GB/月まで無料、1GBごとに300円

 この料金を計算する関数calc_fee(call_seconds_list, data_gb)があるとします。この関数は、通話時間(秒のリスト)とデータ通信量(GB)を引数に取り、合計料金を返します。

 この関数のテストを行うためのテスト仕様書は、たとえば以下のようになります。

テスト仕様書の例
テスト
ケースNo
call_seconds_list
通話時間
(秒のリスト)
data_gb
データ通信量(GB)
fee料金計算詳細
1[]201,500円基本料金のみ
2[600]101,500円通話・データともに無料枠内
3[900]201,600円基本料金1,500円+通話超過100円
(5分=300秒→10円×10)
4[700, 1200]253,240円1回目:100秒超過→40円
2回目:600秒超過→200円
データ:5GB超過→1,500円
合計:1,500+40+200+1,500
5[]232,400円データ3GB超過→3GB分900円
合計:1,500+900

 実際の開発においては、このようなテスト仕様書やテストケースはWordファイルやExcelファイルに記載されることが多いですね。しかし、GitHub Copilotは2026年1月時点では、標準機能ではWordファイルやExcelファイルを読み取ることはできません。そのため、GitHub Copilotでテストコードを生成するには、 テスト仕様書をなんらかの方法でMarkdownやCSVなどのテキスト形式に変換するか、初めからテキスト形式で作成しておく必要があります。 Markdownとは、 文書構造や装飾を指定できるテキスト記法のことです。

 以下は、Markdownで作成したテスト仕様書の例です。

Markdown形式のテスト仕様書の例(テキストファイル)
Markdown形式のテスト仕様書の例(プレビュー)

 そして、テストコードの生成の際に、コンテキストとしてこのファイルを与えます。たとえばチャットビューにドラッグ&ドロップでこのファイルを添付します。すると、GitHub Copilotは、与えられたテスト仕様書に従って、テストを生成できます。

『Visual Studio Codeで学ぶ!GitHub Copilot入門』
  • 【価格】3,080円
  • 【発売日】2026年2月25日
  • 【ページ数】272
  • 【著者】山田 裕進 著
  • 【目次】
     Chapter 1:GitHub Copilotの全体像とセットアップ
     Chapter 2:「コード提案」の利用方法
     Chapter 3:「インラインチャット」の利用方法
     Chapter 4:チャットビューの利用方法
     Chapter 5:GitHub Copilotを活用したソフトウェア開発
     Chapter 6:GitHub Copilotのカスタマイズ
     Chapter 7:GitHubのWebサイト上でのGitHub Copilotの利用
     Chapter 8:モバイル端末やターミナルでのGitHub Copilotの利用
     Appendix