単体テスト ツールと環境を確認する

完了

GitHub Copilotチャットを使用すると、指定したコードに基づいて単体テストを提案できます。 たとえば、メソッドシグネチャと本文を指定した場合、GitHub Copilot Chat は、入力パラメーターと予想される出力値をカバーするテスト ケースを提案できます。 テスト プロジェクトにいくつかのテスト ケースが含まれる場合は、GitHub Copilotを使用して、追加のテスト ケースのコード補完候補を生成できます。 コード行補完を使用して単体テストを生成することは、反復的なプロセスを減らし、コードが徹底的にテストされていることを保証するのに役立ちます。

GitHub Copilot Chat は、コードのコンテキストとセマンティクスを使用して、関数が正しく動作していることを確認するアサーションを提案します。 手作業での特定が困難であるかもしれないエッジ ケースや境界条件用のテスト ケースの記述も手助けします。 たとえば、GitHub Copilot チャットでは、エラー処理、null 値、または予期しない入力の種類のテスト ケースを提案できます。

重要

生成されたテスト ケースは、考えられるすべてのシナリオをカバーしているとは限りません。 コードの品質を確保するには、手動テストとコード レビューが必要です。

GitHub Copilotの単体テストサポート

GitHub Copilotは、次のテスト タスクに役立ちます。

  • テスト フレームワークを設定する: プロジェクトと言語に適したテスト フレームワークと VS Code 拡張機能の構成に関するヘルプが表示されます。
  • テスト コードを生成する: 単体テスト、統合テスト、アプリケーション コードをカバーするエンドツーエンドのテストを作成します。
  • エッジ ケースの処理: エッジ ケースとエラー状態をカバーする包括的なテスト スイートを生成します。
  • 失敗したテストを修正する: テストの失敗を修正するための提案を受け取ります。
  • 一貫性を維持する: GitHub Copilotをカスタマイズして、プロジェクトのコーディングプラクティスに従ったテストを生成します。

テスト フレームワークを設定する

テスト ワークフローを高速化するために、GitHub Copilotは、プロジェクトのテスト フレームワークと VS Code 拡張機能を設定するのに役立ちます。 GitHub Copilotは、プロジェクトの種類に基づいて適切なテスト フレームワークを提案します。

  1. チャット ビューを開きます。

  2. チャット入力フィールドに /setupTests コマンドを入力します。

  3. GitHub Copilotのガイダンスに従ってプロジェクトを構成します。

GitHub Copilotを使用して単体テストを記述する

GitHub Copilotは、コードベースをカバーするテスト コードを生成することで、アプリケーション コードのテストを記述するのに役立ちます。 これには、単体テスト、エンド ツー エンド テスト、エッジ ケースのテストが含まれます。

次のGitHub Copilot ツールを使用して単体テストを生成できます。

  • チャット ビュー: チャット ビューを使用して、Ask、Plan、または Agent を使用してプロジェクト、クラス、またはメソッドの単体テストを生成します。
  • インライン チャット: インライン チャットを使用して、選択したクラスまたはメソッドの単体テストを生成します。
  • スマート アクション: [テストの生成] スマート アクションを使用して、プロンプトを記述せずに選択したコードの単体テストを生成します。
  • コード行の入力候補: コード行の入力候補を使用して、既存のテスト ケースの単体テストの追加を提案します。

失敗したテストを修正する

GitHub Copilotは、Visual Studio Codeのテスト エクスプローラーと統合され、失敗したテストの修正に役立ちます。

  1. テスト エクスプローラーで、失敗したテストにカーソルを合わせます。

  2. [ テスト エラーの修正 ] ボタン (スパークル アイコン) を選択する

  3. GitHub Copilot推奨される修正プログラムを確認して適用します。

または、次を実行できます。

  1. チャット ビューを開きます。

  2. /fixTestFailureスラッシュ コマンドを入力します。

  3. GitHub Copilotの提案に従ってテストを修正する

ヒント

エージェント モードでGitHub Copilotを使用する場合、エージェントはテストの実行時にテスト出力を監視し、失敗したテストの修正と再実行を自動的に試行します。

一貫性を維持する

組織に特定のテスト要件がある場合は、テストを生成GitHub Copilot方法をカスタマイズして、標準を満たしていることを確認できます。 カスタム命令を提供することで、GitHub Copilotテストの生成方法をカスタマイズできます。 例えば次が挙げられます。

  • 推奨されるテスト フレームワークを指定する
  • テストの名前付け規則を定義する
  • コード構造の基本設定を設定する
  • 特定のテスト パターンまたは手法を要求する

単体テストのVisual Studio Codeサポート

Visual Studio Codeで C# 単体テストを作成して実行するには、次のリソースが必要です。

  • .NET 8.0 SDK 以降。
  • Visual Studio Code用の C# 開発キット拡張機能。
  • プロジェクトに追加されたテスト フレームワーク パッケージ。

C# 開発キットによる単体テストのサポート

Visual Studio Code用の C# 開発キット拡張機能には、C# プロジェクトの単体テストの作成と管理に役立つ豊富な機能セットが用意されています。 このパックには、次の機能があります。

  • テスト エクスプローラー - ワークスペース内のすべてのテスト ケースを表示するツリー ビュー。
  • テスト ケースの実行/デバッグ - テスト ケースを実行およびデバッグする機能。
  • テスト結果の表示 - テスト結果を表示する機能。
  • テスト コマンド - すべてのテストの実行、失敗したテストの実行などを行うためのコマンド。
  • テスト設定 - テストに固有の設定。
  • テスト フレームワーク パッケージ

C# 開発キットは、以下のテスト フレームワークをサポートしています。

  • xUnit
  • NUnit
  • MSTest

C# 開発キットを使用すると、テスト プロジェクトの作成、テスト フレームワーク パッケージの追加、単体テストの管理を行うことができます。

テスト フレームワークの有効化

Visual Studio Codeのコマンド パレットは、プロジェクトのテスト フレームワークを有効にする最も簡単な方法を提供します。 コマンド パレットは、以下の方法で開くことができます。

  • Ctrl + Shift + P キー (Windows/Linux) を押します ) または Cmd + Shift + P (macOS)。
  • [表示] メニューを開き、[コマンド パレット] を選択します。
  • Solution Explorer ビューを開き、ソリューション フォルダーを右クリックし、 New Project を選択します。 このオプションを選択すると、コマンド パレットが開き、.NET:New Project... コマンドが既に選択されています。

以下のセクションでは、コマンド パレットを使用して C# プロジェクトのテスト フレームワークを有効にする方法について説明します。

xUnit

コマンド パレットを開き、.NET:New Project... を選択します。xUnit テスト プロジェクトを選択し、新しいプロジェクトの名前と場所を指定します。 このコマンドは、xUnit をテスト ライブラリとして使用する新しいプロジェクトとディレクトリを作成し、次の <PackageReference /> 要素をプロジェクト ファイルに追加してテスト ランナーを構成します。

  • Microsoft.NET.Test.Sdk
  • xUnit
  • xunit.runner.visualstudio
  • coverlet.collector

ターミナルから、次のコマンドを実行できます。


   dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

NUnit

コマンド パレットを開き、.NET:New Project... を選択します。NUnit3 テスト プロジェクトを選択し、新しいプロジェクトの名前と場所を指定します。 このコマンドは、テスト ライブラリとして NUnit を使用する新しいプロジェクトとディレクトリを作成し、次の <PackageReference /> 要素をプロジェクト ファイルに追加してテスト ランナーを構成します。

  • Microsoft.NET.Test.Sdk
  • NUnit
  • NUnit3TestAdapter

ターミナルから、次のコマンドを実行します。

    dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

MSTest

コマンド パレットを開き、.NET:New Project... を選択します。MSTest テスト プロジェクトを選択し、新しいプロジェクトの名前と場所を指定します。 このコマンドは、MSTest をテスト ライブラリとして使用する新しいプロジェクトとディレクトリを作成し、次の <PackageReference /> 要素をプロジェクト ファイルに追加してテスト ランナーを構成します。

  • Microsoft.NET.Test.Sdk
  • MSTest.TestAdapter
  • MSTest.TestFramework
  • coverlet.collector

ターミナルから、次のコマンドを実行します。

    dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

GitHub Copilot Chat を使用してVisual Studio Codeで単体テストを開発する

Visual Studio CodeとGitHub Copilot チャットの組み合わせにより、C# プロジェクトの単体テストを作成して実行するための強力な環境が提供されます。

単体テストのプロセスは、次の 3 つの段階に分けることができます。

  • Visual Studio Codeを使用して、単体テスト用のテスト プロジェクトを作成します。
  • GitHub Copilot チャットを使用して、C# プロジェクトの単体テスト ケースを開発します。
  • Visual Studio Codeと C# 開発キットを使用して、単体テストを実行および管理します。

テスト プロジェクトを作成する

単体テストを保持するために使用されることになるテスト プロジェクトを作成する必要があります。 Visual Studio Codeを使用して、次のタスクを実行できます。

  1. コマンド パレットを使用して、指定されたテスト フレームワークを使用するテスト プロジェクトを作成します。

  2. 統合ターミナルを使用して、テストするプロジェクトへの参照を追加します。

このプロセスでは、新しいプロジェクトを作成し、選択したフレームワーク用にテスト ランナーを構成します。

GitHub Copilot Chat を使用して単体テスト ケースを生成する

GitHub Copilot チャットを使用して、テスト フレームワークの単体テスト ケースを作成できます。 GitHub Copilot Chat は、テスト フレームワークとコーディング スタイルを認識し、一致するコード スニペットを生成します。 GitHub Copilot チャットを使用して、次のタスクを完了できます。

  • エディターで開いているコード、またはエディターで強調表示されたコード スニペットに基づいて、テスト フレームワークの単体テスト ケースを記述します。 GitHub Copilotは、テスト フレームワークとコーディング スタイルを識別し、一致するコード スニペットを生成します。

  • 手作業では特定が困難なエッジ ケースや境界条件のテスト ケースを識別および記述します。 たとえば、GitHub Copilotは、エラー処理、null 値、または予期しない入力の種類のテスト ケースを提案できます。

  • また、コードのコンテキストとセマンティクスに基づいて、関数が正しく動作していることを確認するアサーションを提案することもできます。 たとえば、関数入力パラメーターが有効であることを保証するためにアサーションを生成します。

GitHub Copilot Chat に単体テスト ケースの生成を依頼する場合は、次のシナリオを検討してください。

  • エディターで 1 つのメソッドが完全に表示される場合は、GitHub Copilot Chat に「Write a unit test for the method in the #editor」と入力して、メソッドの単体テストを生成するように依頼できます。

  • 複数のメソッドが表示されている場合、または目的のメソッドがエディターに表示される範囲を超えている場合は、単体テストを生成するコードを選択し、GitHub Copilot#selection write a unit test for the selected code を確認します。

Visual Studio Codeでの単体テストの実行と管理

Visual Studio Codeと C# 開発キットには、C# プロジェクトの単体テストの実行と管理に役立つ豊富な機能セットが用意されています。 [エクスプローラーのテスト] を使用して、テスト ケースの実行/デバッグ、テスト結果の表示、テスト ケースの管理を行うことができます。

  • テスト ケースの実行/デバッグ:C# 開発キットは、クラスとメソッドの定義の左側にショートカット (緑色の再生ボタン) を生成します。 対象のテスト ケースを実行するには、緑色の再生ボタンを選択します。 また、右クリックすると、詳細なオプションが表示されます。

  • テスト エクスプローラー: テスト エクスプローラーは、ワークスペース内のすべてのテストケースを表示するツリービューです。 Visual Studio Codeの左側のアクティビティ バーにある beaker ボタンを選択して開くことができます。 また、そこからテスト ケースを実行/デバッグし、テスト結果を表示することもできます。

  • テスト結果を表示する:テスト ケースを実行/デバッグした後、関連するテスト項目の状態は、エディター装飾とエクスプローラーのテストの両方で更新されます。 スタック トレース内のリンクを選択して、ソースの場所に移動できます。

  • Visual Studio Codeテスト コマンド: コマンド パレットで Test: を検索すると、テスト コマンド (すべてのテストの実行など) が見つかります。

  • Visual Studio Codeテストの設定: 設定エディターでテストを検索することで確認できるテストに固有のVisual Studio Code設定があります。

まとめ

GitHub Copilotチャットを使用すると、指定したコードに基づいて単体テストを提案できます。 たとえば、メソッドシグネチャと本文を指定した場合、GitHub Copilot Chat は、入力パラメーターと予想される出力値をカバーするテスト ケースを提案できます。 テスト プロジェクトにいくつかのテスト ケースが含まれる場合は、GitHub Copilotを使用して、追加のテスト ケースのコード補完候補を生成できます。 コード行補完を使用して単体テストを生成することは、反復的なプロセスを減らし、コードが徹底的にテストされていることを保証するのに役立ちます。

GitHub Copilot Chat は、コードのコンテキストとセマンティクスを使用して、関数が正しく動作していることを確認するアサーションを提案します。 手作業での特定が困難であるかもしれないエッジ ケースや境界条件用のテスト ケースの記述も手助けします。 たとえば、GitHub Copilot チャットでは、エラー処理、null 値、または予期しない入力の種類のテスト ケースを提案できます。