次の方法で共有


単体テストの概要

Visual Studio を使用して、単体テストを定義して実行し、コードの正常性を維持し、コードカバレッジを確保し、顧客が行う前にエラーやエラーを見つけます。 単体テストを頻繁に実行して、コードが正常に動作していることを確認します。

この記事では、コードで C# と C++ を使用します。図は C# にありますが、概念と機能は .NET 言語、C++、Python、JavaScript、TypeScript に適用されます。

単体テストを作成する

このセクションでは、単体テスト プロジェクトを作成する方法について説明します。

  1. Visual Studio でテストするプロジェクトを開きます。

    単体テストの例を示す目的で、この記事では HelloWorld という名前の単純な "Hello World" C# または C++ コンソール プロジェクトをテストします。 このようなプロジェクトのサンプル コードは次のとおりです。

    namespace HelloWorld
    {
       public class Program
       {
          public static void Main()
          {
             Console.WriteLine("Hello World!");
          }
       }
    }
    
  2. ソリューション エクスプローラーで、ソリューション ノードを選択します。 次に、上部のメニュー バーから [ファイル] > [追加>新しいプロジェクト] を選択します。

  3. [新しいプロジェクト] ダイアログ ボックスで、使用する単体テスト プロジェクトを見つけます。

    検索ボックスに テスト を入力して、 MSTest (C#) やネイティブ単体テスト プロジェクト (C++) など、使用するテスト フレームワークの 単体テスト プロジェクト テンプレートを見つけて選択します。

    Visual Studio の .NET 言語には、NUnit と xUnit 用の組み込みテンプレートが含まれています。 C++ の場合、この例では、Microsoft Native Unit Test Framework を使用するネイティブ単体テスト プロジェクトを選択します。 (別の C++ テスト フレームワークを使用するには、 C/C++ の単体テストの記述を参照してください)。 Python については、「テスト プロジェクト を設定するための Python コードでの単体テスト の設定」を参照してください。

    ヒント

    この記事では、単体テストを手動で作成する方法について説明します。 既存のコードからテストを自動的に生成する場合は、「.NET または他の言語の GitHub Copilot テストを使用した単体テストの生成と実行」を参照してください。GitHub Copilot のスラッシュ コマンドの使用を参照してください。

    ヒント

    この記事では、単体テストを手動で作成する方法について説明します。 既存のコードからテストを自動的に生成する場合は、「コードから C# 単体テスト メソッド スタブを作成する」を参照してください。その他の言語については、「GitHub Copilot でスラッシュ コマンドを使用する」を参照してください。

    次の図は、.NET でサポートされている MSTest 単体テストを示しています。

    Visual Studio 2022 の単体テスト プロジェクト テンプレート

    [ 次へ] をクリックし、テスト プロジェクトの名前を選択し、[ 作成] をクリックします。

    プロジェクトがソリューションに追加されます。

    ソリューション エクスプローラーでの単体テスト プロジェクト

  4. 単体テスト プロジェクトで、[参照] または [依存関係] を右クリックし、[参照の追加] または [プロジェクト参照の追加] を選択して、テストするプロジェクトへの参照を追加します。

  5. テストするコードを含むプロジェクトを選択し、[ OK] をクリックします。

    Visual Studio でプロジェクト参照を追加する

  6. 単体テスト メソッドにコードを追加します。

    たとえば、テスト フレームワークに一致する正しいドキュメント タブ (MSTest、NUnit、xUnit (.NET でのみサポート))、または C++ Microsoft Native Unit Test Framework を選択して、次のコードを使用できます。

    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System.IO;
    using System;
    
    namespace HelloWorldTests
    {
       [TestClass]
       public class UnitTest1
       {
          private const string Expected = "Hello World!";
          [TestMethod]
          public void TestMethod1()
          {
             using (var sw = new StringWriter())
             {
                Console.SetOut(sw);
                HelloWorld.Program.Main();
    
                var result = sw.ToString().Trim();
                Assert.AreEqual(Expected, result);
             }
          }
       }
    }
    

単体テストの実行

  1. テスト エクスプローラーを開きます。

    テスト エクスプローラーを開くには、上部のメニュー バーから [ テスト>テスト エクスプローラー ] を選択します (または Ctrl + ET キーを押します)。

  2. [すべて実行] をクリックして単体テストを実行します (または Ctrl + RV キーを押します)。

    テスト エクスプローラーで単体テストを実行する

    テストが完了すると、緑色のチェック マークがテストに合格したことを示します。 赤い "x" アイコンは、テストが失敗したことを示します。

    テスト エクスプローラーで単体テストの結果を確認する

ヒント

テスト エクスプローラーを使用して、組み込みのテスト フレームワーク (MSTest) またはサードパーティのテスト フレームワークから単体テストを実行できます。 テストをカテゴリにグループ化し、テストリストをフィルター処理し、テストのプレイリストを作成、保存、実行することができます。 テストをデバッグし、テストのパフォーマンスとコード カバレッジを分析することもできます。

ライブ単体テストの結果を表示する (Visual Studio Enterprise)

Visual Studio 2017 以降で MSTest、xUnit、または NUnit テスト フレームワークを使用している場合は、単体テストのライブ結果を確認できます。

これらの手順を実行するには、.NET コードと MSTest、xUnit、または NUnit のいずれかのテスト フレームワークと共に、Visual Studio Enterprise が必要です。

  1. テストメニューのテストを選択し、ライブ単体テスト>を選択して、ライブ単体テストを有効にします。

    Visual Studio 2022 でライブ 単体テストを開始する

  2. コードを記述および編集するときに、コード エディター ウィンドウ内でテストの結果を表示します。

    テストの結果を表示する

  3. テスト結果インジケーターをクリックすると、そのメソッドに対応するテストの名前などの詳細情報が表示されます。

    テスト結果インジケーターを選択する

ライブ 単体テストの詳細については、「 Live Unit Testing」を参照してください。

サード パーティ製のテスト フレームワークを使用する

プログラミング言語に応じて、NUnit、Boost、Google C++ Testing Framework などのサードパーティのテスト フレームワークを使用して、Visual Studio で単体テストを実行できます。 サード パーティ製フレームワークを使用するには:

  • NuGet パッケージ マネージャーを使用して、選択したフレームワーク用の NuGet パッケージをインストールします。

  • (.NET)Visual Studio 2017 バージョン 14.6 以降、Visual Studio には、NUnit および xUnit テスト フレームワーク用の事前構成済みのテスト プロジェクト テンプレートが含まれています。 テンプレートには、サポートを有効にするために必要な NuGet パッケージも含まれています。

  • (C++)Visual Studio 2017 以降のバージョンでは、Google C++ Testing Framework などの一部のフレームワークが既に含まれています。 詳細については、「 Visual Studio での C/C++ の単体テストの記述」を参照してください。

単体テスト プロジェクトを追加するには:

  1. テストするコードを含むソリューションを開きます。

  2. ソリューション エクスプローラーでソリューションを右クリックし、[追加>新しいプロジェクト] を選択します。

  3. 単体テスト プロジェクト テンプレートを選択します。

    この例では、NUnit を選択します。

    Visual Studio 2022 の NUnit テスト プロジェクト テンプレート

    プロジェクト テンプレートには、NUnit と NUnit3TestAdapter への NuGet 参照が含まれています。

    ソリューション エクスプローラーでの NUnit NuGet の依存関係

  4. テスト プロジェクトから、テストするコードを含むプロジェクトへの参照を追加します。

    ソリューション エクスプローラーでプロジェクトを右クリックし、> を選択します。 ([参照] ノードまたは [依存関係] ノードの右クリック メニューから参照を追加することもできます)。

  5. テスト メソッドにコードを追加します。

    単体テスト コード ファイルにコードを追加する

  6. テスト エクスプローラーからテストを実行するか、テスト コードを右クリックし、[テストの実行] (または Ctrl + RT) を選択します。

次のステップ

C/C++ の単体テストを記述する