単体テストでの Microsoft.VisualStudio.TestTools.UnitTesting のメンバーの使用Using Microsoft.VisualStudio.TestTools.UnitTesting Members in Unit Tests

単体テスト フレームワークは、Visual StudioVisual Studio での単体テストをサポートしています。The Unit Testing Framework supports unit testing in Visual StudioVisual Studio. 単体テストをコーディングする場合は、<xref:Microsoft.VisualStudio.TestPlatform.UnitTestFramework> 名前空間のクラスとメンバーを使用します。Use the classes and members in the Microsoft.VisualStudio.TestPlatform.UnitTestFramework> namespace when you are coding unit tests. 単体テストを最初から記述した場合、またはテスト中のコードから生成された単体テストを改良している場合、これらを使用することができます。You can use them when you have written the unit test from scratch or are refining a unit test that was generated from code you are testing.

要素のグループGroups of Elements

単体テスト フレームワークの概要をより明確に説明するために、このセクションでは UnitTesting 名前空間の要素を関連する機能のグループごとにまとめています。To help provide a clearer overview of the Unit Testing Framework, this section organizes the elements of the UnitTesting namespace into groups of related functionality.

注意

名前が文字列 Attribute で終わる Attribute 要素は、使用するときに文字列 Attribute を付けても付けなくてもかまいません。Attribute elements, whose names conclude with the string Attribute, can be used either with or without the string Attribute. たとえば、次の 2 つのコード例は同じように機能します。For example, the following two code examples function identically:

[TestClass()]

[TestClassAttribute()]

データ ドリブン テストで使用する要素Elements Used for Data-Driven Testing

データ ドリブン単体テストを設定するには、次の要素を使用します。Use the following elements to set up data-driven unit tests. 詳細については、「方法: データ ドリブン単体テストを作成する」および「チュートリアル : データ ソースを定義するための構成ファイルの使用」を参照してください。For more information, see How To: Create a Data-Driven Unit Test and Walkthrough: Using a Configuration File to Define a Data Source.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataAccessMethodMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.DataAccessMethod

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceElementMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceElement

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceElementCollectionMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.DataSourceElementCollection

呼び出し順序を確立するために使用する属性Attributes Used to Establish a Calling Order

次のいずれかの属性で装飾されたコード要素は、指定した時点で呼び出されます。A code element decorated with one of the following attributes is called at the moment you specify. 詳細については、「単体テストの構造」を参照してください。For more information, see Anatomy of a Unit Test.

アセンブリの場合For Assemblies

AssemblyInitialize がアセンブリの読み込みの直後に、AssemblyCleanup がアセンブリのアンロードの直前に呼び出されます。AssemblyInitialize and AssemblyCleanup are called right after your assembly is loaded and right before your assembly is unloaded.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssemblyInitializeAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.AssemblyInitializeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssemblyCleanupAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.AssemblyCleanupAttribute

クラスの場合For Classes

ClassInitialize がクラスの読み込みの直後に、ClassCleanup がクラスのアンロードの直前に呼び出されます。ClassInitialize and ClassCleanup are called right after your class is loaded and right before your class is unloaded.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.ClassInitializeAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.ClassInitializeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.ClassCleanupAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.ClassCleanupAttribute

テスト メソッドの場合For Test Methods

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestInitializeAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.TestInitializeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestCleanupAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.TestCleanupAttribute

テスト クラスとテスト メソッドの識別に使用する属性Attributes Used to Identify Test Classes and Methods

各テスト クラスには TestClass 属性が必要であり、各テスト メソッドには TestMethod 属性が必要です。Every test class must have the TestClass attribute, and every test method must have the TestMethod attribute. 詳細については、「単体テストの構造」を参照してください。For more information, see Anatomy of a Unit Test.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestClassAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.TestClassAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestMethodAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.TestMethodAttribute

単体テストでは、さまざまな種類の Assert のステートメント、例外、属性を使用することで、特定のアプリケーションの動作を確認できます。Unit tests can verify specific application behavior by their use of various kinds of Assert statements, exceptions, and attributes. 詳細については、「Assert クラスの使用」を参照してください。For more information, see Using the Assert Classes.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssertMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.Assert

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.CollectionAssertMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.CollectionAssert

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.StringAssertMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.StringAssert

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssertFailedExceptionMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.AssertFailedException

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AssertInconclusiveExceptionMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.AssertInconclusiveException

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.UnitTestAssertExceptionMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.UnitTestAssertException

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.ExpectedExceptionAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.ExpectedExceptionAttribute

TestContext クラスThe TestContext Class

次の属性とそれらに割り当てられた値は、Visual StudioVisual Studio で、特定のテスト メソッドの [プロパティ] ウィンドウに表示されます。The following attributes and the values assigned to them appear in the Visual StudioVisual Studio Properties window for a particular test method. これらの属性は、単体テストのコードからアクセスするためのものではありません。These attributes are not meant to be accessed through the code of the unit test. 代わりに、Visual StudioVisual Studio の IDE、または Visual StudioVisual Studio テストエンジンのいずれかによる単体テストの使用法または実行方法に影響します。たとえば、これらの属性には、[テスト マネージャー] ウィンドウや [テスト結果] ウィンドウの列として表示されるものがあり、それらを使用してテストやテスト結果をグループ化したり並べ替えたりできます。Instead, they affect the ways the unit test is used or run, either by you through the IDE of Visual StudioVisual Studio, or by the Visual StudioVisual Studio test engine.For example, some of these attributes appear as columns in the Test Manager window and Test Results window, which means that you can use them to group and sort tests and test results. このような属性の 1 つに TestPropertyAttribute があります。この属性を使用して、任意のメタデータを単体テストに追加できます。One such attribute is TestPropertyAttribute, which you use to add arbitrary metadata to unit tests. たとえば、これを使用し、単体テストを [TestProperty("TestPass", "Accessibility")] とマークして、このテストの対象となるテスト パスの名前を格納できます。For example, you could use it to store the name of a test pass that this test covers, by marking the unit test with [TestProperty("TestPass", "Accessibility")]. または、[TestProperty("TestKind", "Localization")] を使用して、テストの種類のインジケーターを格納できます。Or you could use it to store an indicator of the kind of test it is: [TestProperty("TestKind", "Localization")]. この属性を使用して作成するプロパティ、および割り当てるプロパティ値は、どちらも Visual StudioVisual Studio の [プロパティ] ウィンドウの [各テストで特有] という見出しの下に表示されます。The property you create by using this attribute, and the property value you assign, are both displayed in the Visual StudioVisual Studio Properties window under the heading Test specific.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.OwnerAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.OwnerAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DeploymentItemAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.DeploymentItemAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.DescriptionAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.DescriptionAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.HostTypeAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.HostTypeAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.IgnoreAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.IgnoreAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.PriorityAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.PriorityAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestPropertyAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.TestPropertyAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.WorkItemAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.WorkItemAttribute

テスト構成クラスTest Configuration Classes

  • Microsoft.TeamFoundation.TestManagement.Client.ObjectTypesMicrosoft.TeamFoundation.TestManagement.Client.ObjectTypes>

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestConfigurationSectionMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.TestConfigurationSection

レポートの生成に使用する属性Attributes Used for Generating Reports

このセクションの属性は、それらの属性が装飾するテスト メソッドを Team Foundation ServerTeam Foundation Server チーム プロジェクトのプロジェクト階層内のエンティティに関連付けます。The attributes in this section relate the test method that they decorate to entities in the project hierarchy of a Team Foundation ServerTeam Foundation Server team project.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.CssIterationAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.CssIterationAttribute

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.CssProjectStructureAttributeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.CssProjectStructureAttribute

プライベート アクセサーと共に使用するクラスClasses Used with Private Accessors

publicize を使用したプライベート アクセサーの作成」に説明されているように、プライベート メソッドの単体テストを生成できます。As described in Using Publicize to Create a Private Accessor, you can generate a unit test for a private method. 生成するとプライベート アクセサー クラスが作成され、このクラスにより、PrivateObject クラスのオブジェクトがインスタンス化されます。This generation creates a private accessor class, which instantiates an object of the PrivateObject class. PrivateObject クラスは、プライベート アクセサー プロセスの一部としてリフレクションを使用するラッパー クラスです。The PrivateObject class is a wrapper class that uses reflection as part of the private accessor process. これは PrivateType クラスに似ていますが、PrivateType クラスは、プライベート インスタンス メソッドの呼び出しではなく、プライベート静的メソッドの呼び出しに使用されます。The PrivateType class is similar, but is used for calling private static methods instead of calling private instance methods.

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.PrivateObjectMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.PrivateObject

  • Microsoft.VisualStudio.TestPlatform.UnitTestFramework.PrivateTypeMicrosoft.VisualStudio.TestPlatform.UnitTestFramework.PrivateType

関連項目See Also

Microsoft.VisualStudio.TestPlatform.UnitTestFrameworkMicrosoft.VisualStudio.TestPlatform.UnitTestFramework