次の方法で共有


.NET 用 GitHub Copilot テストを使用して単体テストを生成して実行する

.NET 用 GitHub Copilot テストを使用して単体テストを作成して実行することで、コードの品質に対する信頼度を高め、テスト カバレッジを向上させます。

Copilot は単体テストを生成できますが、Visual Studio で .NET 用の GitHub Copilot テストを使用することで、次のような追加のテスト機能を利用できます。

  • 単体テストは、ソリューション内の別のプロジェクトで生成されます。
  • Copilot は、C# コンパイラと言語セマンティクスに根差して確定的にテストを生成するため、アサーションとエッジ ケースは予測可能でタイプ セーフです。
  • GitHub Copilot テストは、テスト生成後に単体テストをビルドします。 エラーがある場合、GitHub Copilot for .NET の単体テスト機能はエラーの特定と修正を試み、テストを再実行します。
  • GitHub Copilot テストでは、テスト エクスプローラーを使用してテストが実行されます。

.NET 用の GitHub Copilot テストでは、MSTest、NUnit、および xUnit フレームワークのみを使用して C# プロジェクトのテストが生成されます。 ソリューションに NUnit または xUnit に単体テストが既にある場合、.NET 用の GitHub Copilot テストでは、同じ単体テスト フレームワークで新しいテストが生成されます。 ソリューションに単体テストがない場合は、MSTest を使用して新しいテストが生成されます。

[前提条件]

開始するには、次のものが必要です。

.NET 用の GitHub Copilot テストには、有料の GitHub Copilot サブスクリプション (個人、ビジネス、または企業) が必要です。 無料の Copilot サブスクリプションはサポートされていません。

単体テストの概要については、 単体テストの基本を参照してください。

GitHub Copilot テストを開始する方法

.NET の GitHub Copilot テストは、いくつかの方法で開始できます。

  • Copilot チャットで、「 @Test 」と入力し、[チャット] ウィンドウにターゲットまたはプロンプトを入力します。
  • エディターから右クリックしてコンテキスト メニューを開き、 Copilot Actions>Generate Tests を選択します。
  • 新しい Copilot チャット スレッドで、Copilot Chatのアイスブレーカー提案から単体テストの作成を選択します。

IDE が C# コードにフォーカスしている場合、コンテキスト メニューとアイスブレーカー オプションは、 @Test エージェントに自動的にルーティングされます。 C# 以外のプロジェクトの場合、これらのオプションでは代わりに汎用の Copilot プロンプトを使用します。

プロンプト構文

GitHub Copilot テストでは、構造化構文とフリーフォーム プロンプトという 2 つのプロンプト方法がサポートされています。

構造化構文

@Test #<target>構文を使用して、特定のコード要素のテストを生成します。

@Test #<target>

#<target>できる場所は次のとおりです。

  • メンバークラスファイルプロジェクト、またはソリューション
  • 現在の変更をテストするための git diff (#git_changes)
  • 同じ種類の複数の入力 (複数のクラスや複数のファイルなど)

入力の種類が混在することはサポートされていません。 たとえば、同じプロンプトでファイルとプロジェクトを結合することはできません。

:

  • @Test #BankAccount — BankAccount クラスのテストを生成する
  • @Test #git_changes — 現在コミットされていない変更のテストを生成する
  • @Test #MyProject — MyProject 内のすべてのコードのテストを生成する

フリーフォームプロンプト

自然言語を使用して、テストする内容を記述します。

@Test <your prompt>

:

Prompt Description
@Test class Foo 特定のクラスのテストを生成する
@Test generate tests for the core logic in my #solution コードベースの特定の領域をターゲットとする
@Test write unit tests for my current changes コミットされていない Git 変更のテストを生成する
@Test fix my failing tests 失敗したテストを修正するように Copilot に依頼する
@Test class Bar, targeting 80% code coverage カバレッジ ターゲットを指定する
@Test use xUnit with FluentAssertions テスト フレームワークと規則を指定する

ヒント

フリーフォーム プロンプトで、フレームワークのテスト、ライブラリのモック作成、アサーション スタイル、テスト規則に関する具体的な手順を示すことができます。

その他のコマンド

GitHub Copilot テストには、ユーザー設定のヘルプと管理のためのコマンドが用意されています。

Command Description
@Test /help 使用可能なコマンドと構文を使用してヘルプ メッセージを表示する
@Test /clear-preferences 保存されているユーザー設定 (同意設定を含む) をクリアする

テストを生成して実行する

  1. 新しいテストが必要な既存の C# プロジェクトを開きます。

    既存のプロジェクトがない場合は、新しいプロジェクトを作成し、Bank サンプル アプリケーション コードを使用して単体テストを試すことができます。 .NET の単体テストの作成と実行から開始サンプル コードをProgram.csにコピーします。

  2. プロジェクトをビルドします。

    プロセスを簡略化するために、プロジェクトがエラーなしでビルドされていることを確認します。

  3. Visual Studio で、[表示] > [GitHub Copilot Chat] を選択します。

  4. プロンプトメソッドのいずれかを使用して、GitHub Copilot テストを開始します。

    Bank サンプル アプリケーションの場合は、次のいずれかを使用します。

    • 構造: @Test #BankAccount
    • フリーフォーム: @Test generate comprehensive tests for the BankAccount class

    @Test コマンドを入力すると、Ask モードまたはエージェント モードにすることができます。 結果は異なっていません。

    Test コマンドは、次のようにチャットに表示され、コマンドが認識されることを示します。

    テストを生成するコマンドのスクリーンショット。

  5. [チャット] ウィンドウで、[ 送信] を選択します。

    .NET 用 GitHub Copilot テストでは、コードの分析、単体テスト用の新しいプロジェクトの作成、テストの生成、ビルド、および実行の反復プロセスが開始されます。

    テスト生成は、実行時間の長いプロセスです。 ターゲットのスコープ (ファイル、プロジェクト、ソリューションなど) によっては、しばらく時間がかかる場合があります。

    テストの生成を開始する Copilot のスクリーンショット。

    単体テストが生成されると、テストはソリューション内の別のテスト プロジェクトに表示されます。

    生成されたサンプル テストのスクリーンショット。

    テスト エクスプローラーに結果が表示されます。 GitHub Copilot テストによってテスト エクスプローラーが自動的に開かない場合は、 Test>Test Explorer を選択します。

    テスト エクスプローラーの出力のスクリーンショット。

    この時点で、テスト エクスプローラーを手動で使用してテストの実行を続けたり、テスト結果について Copilot とチャットしたりできます。 また、Copilot を使用して、失敗したテストをデバッグすることもできます。 詳細については、「 単体テストのデバッグ」を参照してください。