コードの単体テストUnit Test Your Code

単体テストを実行することにより、開発者およびテスト担当者は、Visual C#Visual C#Visual BasicVisual Basic、および Visual C++Visual C++ のプロジェクトでクラスのメソッドに論理エラーがないかどうかをすばやく確認できます。Unit tests give developers and testers a quick way to look for logic errors in the methods of classes in Visual C#Visual C#, Visual BasicVisual Basic, and Visual C++Visual C++ projects.

単体テスト ツールには次の要素が含まれます。The unit test tools include:

  1. テスト エクスプローラー。Test Explorer. テスト エクスプローラーを使用すると、単体テストを実行して結果を表示することができます。Test Explorer lets you run unit tests and view their results. テスト エクスプローラーは、サードパーティ製のフレームワークを含めて、エクスプローラーのアダプターがあるすべての単体テスト フレームワークを使用できます。Test Explorer can use any unit test framework, including a third-party framework, that has an adapter for the Explorer.

  2. マネージ コード用の Microsoft 単体テスト フレームワーク。Microsoft unit test framework for managed code. マネージ コード用の Microsoft 単体テスト フレームワークは、Visual Studio と共にインストールされ、.NET コードをテストするためのフレームワークを提供します。The Microsoft unit test framework for managed code is installed with Visual Studio and provides a framework for testing .NET code.

  3. C++ 用の Microsoft 単体テスト フレームワーク。Microsoft unit test framework for C++. C++ 用の Microsoft 単体テスト フレームワークは、Visual Studio と共にインストールされ、ネイティブ コードをテストするためのフレームワークを提供します。The Microsoft unit test framework for C++ is installed with Visual Studio and provides a framework for testing native code.

  4. コード カバレッジ ツール。Code coverage tools. テスト エクスプローラーで、単体テストが 1 つのコマンドから実行する製品コードの量を確認できます。You can determine the amount of product code that your unit tests exercise from one command in Test Explorer.

  5. Microsoft Fakes 分離フレームワーク。Microsoft Fakes isolation framework. Microsoft Fakes 分離フレームワークによって、テスト対象コード内の依存関係を作成する実稼働コードおよびシステム コード向けの代替クラスおよび代替メソッドを作成できます。The Microsoft Fakes isolation framework can create substitute classes and methods for production and system code that create dependencies in the code under test. 関数の Fake デリゲートを実装して、依存関係オブジェクトの動作と出力を制御します。By implementing the fake delegates for a function, you control the behavior and output of the dependency object.

    また、IntelliTest を使用して .NET コードを確認し、テスト データと単体テストのスイートを生成することもできます。You can also use IntelliTest to explore your .NET code to generate test data and a suite of unit tests. コードにある各ステートメントについて、そのステートメントを実行するテスト入力が生成されます。For every statement in the code, a test input is generated that will execute that statement. コード内の各条件付き分岐について、ケース分析が実行されます。A case analysis is performed for every conditional branch in the code.

主なタスクKey tasks

単体テストを理解および作成するには、次のトピックを参照してください。Use the following topics to help with understanding and creating unit tests:

タスクTasks 関連するトピックAssociated Topics
クイック スタートおよびチュートリアル: 次のトピックでは、Visual Studio での単体テストについてコード例から学習できます。Quick starts and walkthroughs: Use the following topics to learn unit testing in Visual Studio from code examples. - チュートリアル: マネージ コードに対する単体テストの作成と実行- Walkthrough: Creating and Running Unit Tests for Managed Code
- クイック スタート: テスト エクスプローラーによるテスト駆動開発- Quick Start: Test Driven Development with Test Explorer
- 既存の C++ アプリケーションへの単体テストの追加- Adding unit tests to existing C++ applications
- テスト エクスプローラーを使用したネイティブ コードの単体テスト- Unit testing native code with Test Explorer
テスト エクスプローラーによる単体テスト: テスト エクスプローラーによって、さらに生産性が高く効率的な単体テストを作成できることを学習します。Unit testing with Test Explorer: Learn how Test Explorer can help create more productive and efficient unit tests. - 単体テストの基本- Unit Test Basics
- 単体テスト プロジェクトを作成する- Create a unit test project
- テスト エクスプローラーを使用して単体テストを実行する- Run unit tests with Test Explorer
- サードパーティ製の単体テスト フレームワークをインストールする- Install third-party unit test frameworks
- Visual Studio 2010 からの単体テストのアップグレード- Upgrading Unit Tests from Visual Studio 2010
マネージ コードの単体テスト:Unit testing managed code: - マネージ コード用の Microsoft 単体テスト フレームワークを使用した .NET Framework 用単体テストの記述- Writing Unit Tests for the .NET Framework with the Microsoft Unit Test Framework for Managed Code
C++ コードの単体テストUnit testing C++ code - C++ 用の Microsoft 単体テスト フレームワークを使用した C++ 用単体テストの記述- Writing Unit tests for C/C++ with the Microsoft Unit Testing Framework for C++
単体テストの分離Isolating unit tests - Microsoft Fakes を使用したテストでのコードの分離- Isolating Code Under Test with Microsoft Fakes
コード カバレッジを使用して、単体テストでテストされたプロジェクトのコードの割合を調べる: Visual Studio アプリケーション ライフサイクル管理Visual Studio Application Lifecycle Management のテスト ツールのコード カバレッジ機能について学習します。Use code coverage to identify what proportion of your project's code is being tested using unit tests: Learn about the code coverage feature of Visual Studio アプリケーション ライフサイクル管理Visual Studio Application Lifecycle Management testing tools. - コード カバレッジを使用した、テストされるプロジェクトのコード割合の確認- Using Code Coverage to Determine How Much Code is being Tested
単体テストにロード テストを使用したストレスおよびパフォーマンスの分析の実行: ロード テストを作成し、それに単体テストを追加すると、アプリケーションのパフォーマンスおよびストレスの問題を分離するのに役立ちます。Perform stress and performance analysis by using load tests for your unit tests: You can create a load test and add your unit tests to it to help isolate performance and stress issues in your application. 注: ロード テストを作成して使用するには、Visual Studio Enterprise が必要です。Note: Creating and using load tests requires Visual Studio Enterprise. - ロード テストの作成と編集- Creating and Editing Load Tests
- 方法: ロード テスト シナリオに、Web パフォーマンス テストと単体テストを追加する- How to: Add Web Performance Tests and Unit Tests to a Load Test Scenario
- 方法: ロード テスト シナリオから、Web パフォーマンス テストと単体テストを削除する- How to: Remove Web Tests and Unit Tests from a Load Test Scenario
品質ゲートの設定と適用: 品質ゲートを作成し、コードがチェックインされる前にテストを実行することで、コードの品質を保証できます。Set and enforce quality gates: You can create quality gates to enforce that tests are run before code is checked in to help ensure the quality of the code. - 品質ゲートの設定と適用- Set and Enforce Quality Gates
単体テストの種類の拡張: 単体テスト フレームワークにはない場合がある機能をテストに追加できます。Extend the unit test type: You can add functionality to your tests that might not be in the Unit Test Framework. たとえば、テストを通常のユーザーとして実行するかどうかを指定するテスト プロパティを追加できます。For example, you can add a test property that specifies if a test should run as a normal user or not. また、フレームワークを拡張して、行の属性をメソッドに追加し、テスト内でその行のデータを使用することもできます。Or you can extend the framework to add row attributes to a method and use the data in that row inside the test. 単体テスト フレームワークを拡張する方法のサンプル コードについては、次の Microsoft Web サイトを参照してください。For sample code of how to extend the unit test framework, see the following Microsoft Web site.
テストのオプションを設定する: たとえば、テスト結果が格納される場所を指定できます。Set testing options: For example, you can specify where test results are stored. .runsettings ファイルを使用して単体テストを構成するConfigure unit tests by using a .runsettings file

Microsoft テスト マネージャーでのテスト結果の確認Reviewing Test Results in Microsoft Test Manager

テスト結果とその扱い方 (テスト結果を表示、保存、発行する方法など) について説明します。Describes test results and ways to work with them, including how to view, save, and delete them.

Microsoft Visual Studio を使用したシステム テストの実行Running System Tests Using Microsoft Visual Studio

Microsoft Test ManagerMicrosoft Test Manager を使用するのではなく、Visual Studio を使用して自動テストを実行する方法へのリンクを示します。Provides links to information about using Visual Studio as opposed to using Microsoft Test ManagerMicrosoft Test Manager to run automated tests.

参照Reference

<xref:Microsoft.VisualStudio.TestTools.UnitTesting>
UnitTesting 名前空間について説明します。この名前空間は、単体テストをサポートする属性、例外、アサートなどのクラスを提供します。Describes the UnitTesting namespace, which provides attributes, exceptions, asserts, and other classes that support unit testing.

<xref:Microsoft.VisualStudio.TestTools.UnitTesting.Web>
UnitTesting.Web 名前空間について説明します。この名前空間は、ASP.NETASP.NET および Web サービスの単体テスト サポートを提供することで UnitTesting 名前空間を拡張します。Describes the UnitTesting.Web namespace, which extends the UnitTesting namespace by providing support for ASP.NETASP.NET and Web service unit tests.

外部リソースExternal resources

ビデオVideos

Channel 9: XAML を使用した UWP アプリのビルドの単体テストChannel 9: Unit testing your UWP apps built using XAML

フォーラムForums

Visual Studio の単体テストVisual Studio Unit Testing

ガイダンスGuidance

Visual Studio 2012 を使用した継続的配信のためのテスト - 第 2 章: 単体テスト: 内部のテストTesting for Continuous Delivery with Visual Studio 2012 - Chapter 2: Unit Testing: Testing the Inside

参照Reference

単体テストのコンテンツ インデックスContent Index for Unit Tests

関連項目See Also

コード品質の向上 Improve Code Quality
アプリケーションのテストTesting the application