Visual Studio を使用して、単体テストを定義して実行し、コードの正常性を維持し、コードカバレッジを確保し、顧客が行う前にエラーやエラーを見つけます。 単体テストを頻繁に実行して、コードが正常に動作していることを確認します。
この記事では、コードで C# と C++ を使用します。図は C# にありますが、概念と機能は .NET 言語、C++、Python、JavaScript、TypeScript に適用されます。
単体テストを作成する
このセクションでは、単体テスト プロジェクトを作成する方法について説明します。
Visual Studio でテストするプロジェクトを開きます。
単体テストの例を示す目的で、この記事では HelloWorld という名前の単純な "Hello World" C# または C++ コンソール プロジェクトをテストします。 このようなプロジェクトのサンプル コードは次のとおりです。
ソリューション エクスプローラーで、ソリューション ノードを選択します。 次に、上部のメニュー バーから [ファイル] > [追加>新しいプロジェクト] を選択します。
[新しいプロジェクト] ダイアログ ボックスで、使用する単体テスト プロジェクトを見つけます。
検索ボックスに テスト を入力して、 MSTest (C#) やネイティブ単体テスト プロジェクト (C++) など、使用するテスト フレームワークの 単体テスト プロジェクト テンプレートを見つけて選択します。
Visual Studio 2017 バージョン 14.8 以降、.NET 言語には NUnit と xUnit の組み込みテンプレートが含まれています。 C++ の場合、この例では、Microsoft Native Unit Test Framework を使用するネイティブ単体テスト プロジェクトを選択します。 (別の C++ テスト フレームワークを使用するには、 C/C++ の単体テストの記述を参照してください)。 Python については、「テスト プロジェクト を設定するための Python コードでの単体テスト の設定」を参照してください。
ヒント
C# の場合のみ、より高速なメソッドを使用してコードから単体テスト プロジェクトを作成できます。 詳細については、「 単体テスト プロジェクトとテスト メソッドの作成」を参照してください。 .NET Core または .NET Standard でこのメソッドを使用するには、Visual Studio 2019 以降が必要です。
次の図は、.NET でサポートされている MSTest 単体テストを示しています。
[ 次へ] をクリックし、テスト プロジェクトの名前を選択し、[ 作成] をクリックします。
プロジェクトがソリューションに追加されます。
単体テスト プロジェクトで、[参照] または [依存関係] を右クリックし、[参照の追加] または [プロジェクト参照の追加] を選択して、テストするプロジェクトへの参照を追加します。
テストするコードを含むプロジェクトを選択し、[ OK] をクリックします。
単体テスト メソッドにコードを追加します。
たとえば、テスト フレームワークに一致する正しいドキュメント タブ (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); } } } }
単体テストの実行
テスト エクスプローラーを開きます。
テスト エクスプローラーを開くには、上部のメニュー バーから [ テスト>テスト エクスプローラー ] を選択します (または Ctrl + E、 T キーを押します)。
[すべて実行] をクリックして単体テストを実行します (または Ctrl + R、V キーを押します)。
テストが完了すると、緑色のチェック マークがテストに合格したことを示します。 赤い "x" アイコンは、テストが失敗したことを示します。
ヒント
テスト エクスプローラーを使用して、組み込みのテスト フレームワーク (MSTest) またはサードパーティのテスト フレームワークから単体テストを実行できます。 テストをカテゴリにグループ化し、テストリストをフィルター処理し、テストのプレイリストを作成、保存、実行することができます。 テストをデバッグし、テストのパフォーマンスとコード カバレッジを分析することもできます。
ライブ単体テストの結果を表示する (Visual Studio Enterprise)
Visual Studio 2017 以降で MSTest、xUnit、または NUnit テスト フレームワークを使用している場合は、単体テストのライブ結果を確認できます。
注
これらの手順を実行するには、.NET コードと MSTest、xUnit、または NUnit のいずれかのテスト フレームワークと共に、Visual Studio Enterprise が必要です。
テストメニューのテストを選択し、ライブ単体テスト開始を選択して、ライブ単体テストを有効にします。
コードを記述および編集するときに、コード エディター ウィンドウ内でテストの結果を表示します。
テスト結果インジケーターをクリックすると、そのメソッドに対応するテストの名前などの詳細情報が表示されます。
ライブ 単体テストの詳細については、「 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++ の単体テストの記述」を参照してください。
単体テスト プロジェクトを追加するには:
テストするコードを含むソリューションを開きます。
ソリューション エクスプローラーでソリューションを右クリックし、[追加>新しいプロジェクト] を選択します。
単体テスト プロジェクト テンプレートを選択します。
この例では、NUnit を選択します。
プロジェクト テンプレートには、NUnit と NUnit3TestAdapter への NuGet 参照が含まれています。
テスト プロジェクトから、テストするコードを含むプロジェクトへの参照を追加します。
ソリューション エクスプローラーでプロジェクトを右クリックし、>Reference を選択します。 ([参照] ノードまたは [依存関係] ノードの右クリック メニューから参照を追加することもできます)。
テスト メソッドにコードを追加します。
テスト エクスプローラーからテストを実行するか、テスト コードを右クリックし、[テストの実行] (または Ctrl + R、T) を選択します。
次のステップ
C/C++ の単体テストを記述する