単体テストを始めましょう

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 コードでの単体テストのセットアップを参照して、テスト プロジェクトを設定します。

    ヒント

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

    ヒント

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

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

    Visual Studio 2022 のユニットテストプロジェクトテンプレート

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

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

    ソリューション エクスプローラーで単体テスト プロジェクトを示すスクリーンショット。

    unit テスト プロジェクト (ソリューション エクスプローラー )

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

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

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

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

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

    • MSTest
    • NUnit
    • xUnit
    • Microsoft ネイティブ ユニット テスト フレームワーク
    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. テスト エクスプローラーを開きます。

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

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

    テスト エクスプローラーを示すスクリーンショット。

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

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

    テスト エクスプローラーでの単体テストの結果を示すスクリーンショット。

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

ヒント

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

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

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

注

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

  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++ の Write 単体テスト」を参照してください。

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

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

  2. ソリューション エクスプローラーAddNew Project を選択します。

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

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

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

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

    ソリューション エクスプローラー における NUnit NuGet 依存関係を示すスクリーンショット。

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

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

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

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

    単体テスト ファイル内のコードを示すスクリーンショット。

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

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

次のステップ

単体テストの基本

マネージド コードの単体テストを作成して実行する

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