テスト エクスプローラーを使用した単体テストの実行

Visual Studio Test エクスプローラーは、開発プロセスの単体テストを統合できます。ソリューションの複数のテスト プロジェクトと製品コード プロジェクトの一部であるテスト クラスからテストを実行できます。テスト プロジェクトは別の単体テスト フレームワークを使用できます。このトピックでは、習得する場合:

このセクションの内容

単体テスト フレームワークとテスト プロジェクト

テストのエクスプローラーで実行中のテスト

  • テストを実行しています。

  • すべてのビルドの後のテストの実行

テスト結果の表示

  • テストの詳細の表示

  • テスト メソッドのソース・コードの表示

テスト リストをグループ化、フィルター処理

  • テスト リストをグループ化

  • 特性でグループ化

  • テスト リストを検索、フィルター処理

単体テストのデバッグ

単体テストのコード カバレッジ分析

テスト メソッドのパフォーマンスの問題の診断

外部リソース

  • ガイダンス

単体テスト フレームワークとテスト プロジェクト

Visual Studio は、マネージ コードとネイティブ コード用の Microsoft 単体テスト フレームワークが含まれます。ただし、テストのエクスプローラーは、テストのエクスプローラーのアダプターを実装する単体テスト フレームワークを実行できます。サードパーティの単体テスト フレームワークをインストールの詳細については、方法: サードパーティ製の単体テスト フレームワークをインストールするを参照してください。

テストのは、ソリューション エクスプローラーで複数のテスト プロジェクトと製品コード プロジェクトの一部であるテスト クラスからテストを実行できます。テスト プロジェクトは別の単体テスト フレームワークを使用できます。テスト対象のコードが .NET Framework 用に記述されたときに、テスト プロジェクトが対象コードの言語にかかわらずの任意の .NET 言語で記述できます。ネイティブ C/C++ コード プロジェクトでは、. C++ の単体テスト フレームワークを使用してテストする必要があります。

このセクションの内容

テストのエクスプローラーで実行中のテスト

テスト プロジェクトをビルドすると、テストはテストのエクスプローラーに表示されます。テストのエクスプローラーが表示されない場合は、Visual Studio のメニューの [テスト] を選択し、[ウィンドウ] を選択し、を [テスト エクスプローラー] を選択します。

単体テスト エクスプローラー

実行する、記述、テスト、テストのエクスプローラーに表示 [失敗したテスト] の既定のグループの結果、[成功したテスト][Skipped Tests][テストを実行しない] を再実行します。方法を変更できますテストのエクスプローラーがテストをグループ化します。

テストのエクスプローラーのツール バーから検索、整理、およびテスト実行の作業を実行できます。

テスト エクスプローラー ツールバーからテストを実行

Hh270865.collapse_all(ja-jp,VS.110).gifテストを実行しています。

ソリューションのすべてのテスト、グループのすべてのテスト、または選択した一連のテストを実行できます。次のいずれかの操作を行います。

  • ソリューションのすべてのテストを実行するには、[すべて実行] を選択します。

  • 既定のグループのすべてのテストを実行するには、[ファイル名を指定して実行...] を選択し、メニューのグループを選択します。

  • 実行するテスト、を開き、選択したテストのショートカット メニューをクリックします [選択したテストの実行] を選択します。

テスト エクスプローラーのウィンドウの一番上のパスと失敗バーは、テスト実行としてアニメーション化されます。テストの実行の最後に、パスと失敗バーが失敗するテストするすべてのテストを通過する回しましたりまたは赤を緑色を切り替えます。

Hh270865.collapse_all(ja-jp,VS.110).gifすべてのビルドの後のテストの実行

Caution メモ注意

すべてのビルドの後の単体テストは、Visual Studio Ultimate でのみサポートされます。

ビルド後に実行

各ローカル ビルドが、標準のメニューの [テスト] を選択した後、単体テストを実行するには、テストのエクスプローラーのツール バーの [ビルド後にテストを実行] を選択します。

このセクションの内容

テスト結果の表示

実行する、記述、テスト、テストのエクスプローラーに表示 [失敗したテスト] のグループの結果、[成功したテスト][Skipped Tests][テストを実行しない] を再実行します。テストのエクスプローラーの下部の詳細ペインに、テストの実行の概要を表示します。

Hh270865.collapse_all(ja-jp,VS.110).gifテストの詳細の表示

個々のテストの詳細を表示するには、テストを選択します。

テストの詳細ペインには、次の情報が表示:

  • テスト メソッドのソース ファイル名と行番号。

  • テストのステータス。

  • テスト メソッドの実行に要した時間です。

テストが失敗した場合、または詳細ペインに表示:

  • テストの単体テスト フレームワークによって返されるメッセージ。

  • テストが失敗した場合、スタック トレース。

Hh270865.collapse_all(ja-jp,VS.110).gifテスト メソッドのソース・コードの表示

Visual Studio エディターのテスト メソッドのソース・コードを表示するには、テストを選択し、ショートカット メニューの (キーボードの [テストを開く] を選択する: F12)。

このセクションの内容

テスト リストをグループ化、フィルター処理

テストのエクスプローラーは、定義済みカテゴリにテストをグループ化できます。テストのエクスプローラーで実行されるほとんどの単体テスト フレームワークはペア、テストをグループ化するために独自のカテゴリおよびカテゴリと値を定義することができます。また、テストのプロパティに対して文字列照合してテストの一覧をフィルター処理できます。

Hh270865.collapse_all(ja-jp,VS.110).gifテスト リストをグループ化

テストを編成方法を変更するには、矢印を [グループ化] ボタン テスト エクスプローラー グループ ボタン の横のをクリックし、新しいグループの条件を選択します。

エクスプローラーのグループをテストします。

グループ

説明

存続期間

実行時間でグループのテスト: [速い][中][遅い]

成果

実行結果でグループ化のテスト: [失敗したテスト][Skipped Tests][成功したテスト]

プロパティ

bycategory グループのテストと、定義する値のペア。プロパティのカテゴリと値を指定する構文は、単体テスト フレームワークによって定義されます。

プロジェクト

グループはプロジェクト名によってテストします。

Hh270865.collapse_all(ja-jp,VS.110).gif特性でグループ化

プロパティは、通常、カテゴリの名前と値のペアですが、また、一つのカテゴリがあります。プロパティは、単体テスト フレームワークによってテスト メソッドとして識別されたメソッドに再配置できます。単体テスト フレームワークは特性のカテゴリを定義できます。プロパティのカテゴリに独自のカテゴリの名前と値のペアを定義する値を追加できます。プロパティのカテゴリと値を指定する構文は、単体テスト フレームワークによって定義されます。

たとえば、マネージ apps 用の Microsoft 単体テスト フレームワークで、TestPropertyAttributeを使用してプロパティの名前と値のペアを定義します。Microsoft の単体テスト フレームワークでは、これらの定義済みの特性が格納されます:

プロパティ

説明

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute ]

所有者のカテゴリは、単体テスト フレームワークによって定義され、所有者の文字列値を指定する必要があります。

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute ]

優先順位のカテゴリは、単体テスト フレームワークによって定義され、優先順位の整数値を指定するように要求します。

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute ]

TestCategory の属性の値なしでカテゴリを作成できるようになります。TestCategory の属性で定義されるカテゴリは、TestProperty の属性のカテゴリがあります。

[ T:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute ]

TestProperty の属性は特性のカテゴリと値のペアを定義することができます。

C++ の場合にフレームワークをテストする Microsoft 単体の特性

特性を定義するには、TEST_METHOD_ATTRIBUTE のマクロを使用します。たとえば、特性を定義することは TEST_MY_TRAITを参照しました:

#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)

定義された特性を、単体テストで使用する:

BEGIN_TEST_METHOD_ATTRIBUTE(Method1)
    TEST_OWNER(L"OwnerName")
    TEST_PRIORITY(1)
    TEST_MY_TRAIT(L"thisTraitValue")
END_TEST_METHOD_ATTRIBUTE()

TEST_METHOD(Method1)
{   
    Logger::WriteMessage("In Method1");
    Assert::AreEqual(0, 0);
}

C++ の特性の属性マクロ

マクロ

説明

TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)

特性を定義するには TEST_METHOD_ATTRIBUTE のマクロを使用します。

TEST_OWNER(ownerAlias)

テスト メソッドの所有者を指定するには、定義済みの所有者の特性を使用します。

TEST_PRIORITY(priority)

テスト メソッドに相対的な優先順位を再配置には、定義済みの優先順位の特性を使用します。

このセクションの内容

Hh270865.collapse_all(ja-jp,VS.110).gifテスト リストを検索、フィルター処理

で、表示し、実行するには、プロジェクトのテスト メソッドを制限するためにテストのエクスプローラーのフィルターを使用できます。

テストのエクスプローラーの検索ボックスの文字列を入力し、Enter キーを押すときに、完全修飾名に文字列があるそれらのテストだけを表示するようにテスト リストがフィルター処理されます。

を基準に基づいてフィルター処理するには:

  1. 検索ボックスの右にあるドロップダウン リストを開きます。

  2. 新しい条件を選択します。

  3. 引用符に対してフィルターの値を入力します。

フィルターの検索カテゴリ

[!メモ]

検索は大文字と小文字をケースで、条件の値の一部として指定した文字列に一致します。

[修飾子]

説明

プロパティ

一致を特性の両方のカテゴリ、値を検索します。プロパティのカテゴリを指定する構文と値は、単体テスト フレームワークによって定義されます。

プロジェクト

一致をテスト プロジェクトの名前が検索されます。

エラー メッセージ

失敗したが返すユーザー定義のエラー メッセージを保持します。一致するために検索します。

ファイル パス

一致をテストのソース ファイルの完全修飾ファイル名を検索します。

完全修飾名

一致をテストの名前空間、クラス、およびメソッドの完全修飾ファイル名を検索します。

出力

標準出力 (stdout) 標準エラー (stderr) に記述されたユーザー定義のエラー メッセージを検索します。出力メッセージを指定する構文は、単体テスト フレームワークによって定義されます。

成果

一致をテストのエクスプローラーで、カテゴリの名前を検索します: [失敗したテスト][Skipped Tests][成功したテスト]

このセクションの内容

単体テストのデバッグ

テストのデバッグ セッションを開始するには、テストのエクスプローラーを使用できます。シームレスな Visual Studio デバッガーを使用してコードのステップ実行はテスト対象の単体テストとプロジェクトの間であちこちになります。デバッグを開始するには:

  1. Visual Studio エディターで、デバッグする一つ以上のテスト メソッドにブレークポイントを設定します。

    [!メモ]

    テスト メソッドが任意の順序で実行できるため、デバッグするすべてのテスト メソッドにブレークポイントを設定します。

  2. テストのエクスプローラーで、テスト メソッドを選択し、ショートカット メニューの [選択したテストのデバッグ] を選択します。

詳細については、デバッガーについて、Visual Studio でのデバッグを参照してください。

このセクションの内容

単体テストのコード カバレッジ分析

[!メモ]

単体テストのコード カバレッジは、Visual Studio Ultimate、Visual Studio Premium でのみ使用できます。

Visual Studio でコード カバレッジのツールを使用して、単体テストで実際にテスト中の製品コードの量を決定できます。選択したテストまたはソリューションのすべてのテストのコード カバレッジを実行できます。

ソリューションのテスト メソッドのコード カバレッジを実行するには:

  1. Visual Studio のメニューの [TestSettingDistributedLoadTestWalkthrough.testsettings] を選択し、[コード カバレッジの分析] を選択します。

  2. サブメニューから次のコマンドの 1 種類を選択する:

    • 選択したテスト は、テストのエクスプローラーで選択したテスト メソッドを実行します。

    • すべてのテスト は、ソリューションのすべてのテスト メソッドを実行します。

コード カバレッジは、ウィンドウの行で実行する場合、名前空間、モジュール、関数、クラスと製品コード ブロックの割合です。

詳細については、「コード カバレッジを使用した、テストされるプロジェクトのコード割合の確認」を参照してください。

このセクションの内容

テスト メソッドのパフォーマンスの問題の診断

テスト メソッドに時間がかかる理由いる診断するには、テストのエクスプローラーのメソッドを選択し、ショートカット メニューの [プロファイル] を選択します。「プロファイリング ツールを使用したアプリケーション パフォーマンスの分析」を参照してください。

このセクションの内容

外部リソース

Hh270865.collapse_all(ja-jp,VS.110).gifガイダンス

Visual Studio 2012 –の章の 2 番目の一連の配信のためのテスト: 単体テスト: 内部のテスト

参照

概念

単体テストを使用したコードの検証

方法: 64 ビット プロセスとして単体テストを実行する