単体テストを使用すると、開発者とテスト担当者は、C#、Visual Basic、および C++ プロジェクトのクラスのメソッドでロジック エラーをすばやく検索できます。
単体テスト ツールには、次のものが含まれます。
テスト エクスプローラー - 単体テストを実行し、その結果を テスト エクスプローラーに表示します。 テスト エクスプローラー用のアダプターを備えるサードパーティ製フレームワークを含む、任意の単体テスト フレームワークを使用できます。
マネージド コード用の Microsoft 単体テスト フレームワーク - マネージド コード用の Microsoft 単体テスト フレームワークは、Visual Studio と共にインストールされ、.NET コードをテストするためのフレームワークを提供します。
Microsoft Native Unit Test Framework - Microsoft Native Unit Test Framework for C++ は、C++ ワークロードを使用した デスクトップ開発 の一部としてインストールされます。 ネイティブ コードをテストするためのフレームワークを提供します。 Google Test、Boost.Test、および CTest フレームワークも含まれており、追加のテスト フレームワークではサード パーティ製のアダプターを使用できます。 詳細については、「 C/C++ の単体テストを記述する」を参照してください。
コード カバレッジ ツール - 単体テストで実行される製品コードの量は、テスト エクスプローラーの 1 つのコマンドから決定できます。
Microsoft Fakes 分離フレームワーク - Microsoft Fakes 分離フレームワークでは、テスト対象のコードに依存関係を作成する運用コードとシステム .NET コードの代替クラスとメソッドを作成できます。 関数の偽のデリゲートを実装することで、依存関係オブジェクトの動作と出力を制御します。
.NET の場合は、 IntelliTest を使用してコードを探索し、テスト データと一連の単体テストを生成することもできます。 コード内のすべてのステートメントに対して、そのステートメントを実行するテスト入力が生成されます。 ケース分析は、コード内のすべての条件分岐に対して実行されます。
主なタスク
単体テストの理解と作成については、次の記事を参照してください。
タスク | 関連トピック |
---|---|
チュートリアル: コード例から Visual Studio での単体テストについて説明します。 |
-
単体テストを始める - テスト エクスプローラーを使用したテスト駆動開発 |
テスト エクスプローラーを使用した単体テスト: テスト エクスプローラーを使用して、生産性と効率の高い単体テストを作成する方法について説明します。 |
-
単体テストの基本 - テスト エクスプローラーを使用して単体テストを実行する - サード パーティの単体テスト フレームワークをインストールする |
単体テスト .NET コード | - .NET コードの単体テストを作成して実行する |
単体テスト C++ コード |
-
C/C++ の単体テストを記述する - 方法: C++ アプリに単体テストを追加する |
コード カバレッジを使用して、テストされるプロジェクトのコードの割合を特定 します。Visual Studio テスト ツールのコード カバレッジ機能について説明します。 | - コード カバレッジを使用して、テストされているコードの量を判断する |
単体テストを分離する | - テスト対象の .NET コードを Microsoft Fakes で分離する |
品質ゲートの設定: コードがチェックインまたはマージされる前にテストを実行するように強制する品質ゲートを作成する方法について説明します。 | - チェックイン ポリシー (Azure Repos TFVC) |
テスト オプションを設定します。 テスト結果が格納される場所など、テスト オプションを構成する方法について説明します。 | .runsettings ファイルを使用して単体テストを構成する |
API リファレンス ドキュメント
- Microsoft.VisualStudio.TestTools.UnitTesting では、単体テストをサポートする属性、例外、アサート、およびその他のクラスを提供する UnitTesting 名前空間について説明します。
- Microsoft.VisualStudio.TestTools.UnitTesting.Web では、UnitTesting.Web 名前空間について説明します。これは、ASP.NET と Web サービスの単体テストのサポートを提供することで UnitTesting 名前空間を拡張します。