テスト エクスプローラーを使用して単体テストを実行するRun unit tests with Test Explorer

テスト エクスプローラーを使用し、Visual Studio またはサードパーティの単体テスト プロジェクトから単体テストを実行します。Use Test Explorer to run unit tests from Visual Studio or third-party unit test projects. テスト エクスプローラーを使用し、テストをカテゴリにまとめたり、テストの一覧にフィルターを適用したり、テストのプレイリストを実行したりすることもできます。You can also use Test Explorer to group tests into categories, filter the test list, and create, save, and run playlists of tests. テストをデバッグし、テストのパフォーマンスとコード カバレッジを分析できます。You can debug tests and analyze test performance and code coverage.

Visual Studio には、マネージド コードおよびネイティブ コード用の Microsoft 単体テスト フレームワークが含まれます。Visual Studio includes the Microsoft unit testing frameworks for both managed and native code. ただし、テスト エクスプローラーでは、テスト エクスプローラーのアダプターを実装した単体テスト フレームワークも実行できます。However, Test Explorer can also run any unit test framework that has implemented a Test Explorer adapter. サードパーティの単体テスト フレームワークのインストールの詳細については、「サードパーティ製の単体テスト フレームワークをインストールする」を参照してください。For more information about installing third-party unit test frameworks, see Install third-party unit test frameworks

テスト エクスプローラーは、ソリューション内の複数のテスト プロジェクト、および運用コード プロジェクトに含まれるテスト クラスからテストを実行できます。Test Explorer can run tests from multiple test projects in a solution and from test classes that are part of the production code projects. テスト プロジェクトは別の単体テスト フレームワークを使用できます。Test projects can use different unit test frameworks. テスト対象のコードを .NET Framework 用に記述する場合、対象コードの言語にかかわらず、.NET Framework も対象とする言語でテスト プロジェクトを記述できます。When the code under test is written for the .NET Framework, the test project can be written in any language that also targets the .NET Framework, regardless of the language of the target code. ネイティブ C/C++ コード プロジェクトは、C++ の単体テスト フレームワークを使用してテストする必要があります。Native C/C++ code projects must be tested by using a C++ unit test framework. 詳細については、「C/C++ 用の単体テストの記述」を参照してください。For more information, see Writing Unit Tests for C/C++.

テスト エクスプローラーでテストを実行するRun tests in Test Explorer

テスト プロジェクトをビルドすると、テストはテスト エクスプローラーに表示されます。When you build the test project, the tests appear in Test Explorer. テスト エクスプローラーが表示されない場合は、Visual Studio メニューの [テスト] をクリックし、 [Windows][テスト エクスプローラー] の順に選択します。If Test Explorer is not visible, choose Test on the Visual Studio menu, choose Windows, and then choose Test Explorer.

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

テストを実行して、記述し、再実行すると、テスト エクスプローラーに [失敗したテスト][成功したテスト][スキップされたテスト] 、および [テストを実行しない] の既定のグループの結果が表示されます。As you run, write, and rerun your tests, Test Explorer displays the results in default groups of Failed Tests, Passed Tests, Skipped Tests and Not Run Tests. テスト エクスプローラーでテストをグループ化する方法を変更できます。You can change the way Test Explorer groups your tests.

テスト エクスプローラーのツール バーからテストの検索、整理、および実行の作業の多くを実行できます。You can perform much of the work of finding, organizing and running tests from the Test Explorer toolbar.

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

テストの実行Run tests

ソリューション内のすべてのテスト、グループ内のすべてのテスト、または選択した一連のテストを実行できます。You can run all the tests in the solution, all the tests in a group, or a set of tests that you select. 次のいずれかの操作を行います。Do one of the following:

  • ソリューション内のすべてのテストを実行するには、 [すべて実行] をクリックします。To run all the tests in a solution, choose Run All.

  • 既定のグループ内のすべてのテストを実行するには、 [実行] をクリックし、メニューでグループを選択します。To run all the tests in a default group, choose Run... and then choose the group on the menu.

  • 実行する個々のテストを選択し、選択したテストのコンテキスト メニューを開いて、 [選択したテストの実行] を選択します。Select the individual tests that you want to run, open the context menu for a selected test and then choose Run Selected Tests.

  • 個々のテストに実行順序を定める依存関係がない場合、ツール バーにあるIf individual tests have no dependencies that prevent them from being run in any order, turn on parallel test execution with the UTE_parallelicon-small トグル ボタンで並列テストの実行を有効にします。toggle button on the toolbar. これにより、すべてのテスト実行にかかる時間を著しく短縮できます。This can noticeably reduce the time taken to run all the tests.

テストの実行中、テスト エクスプローラー ウィンドウの一番上にある成功/失敗ステータス バーがアニメーション化されます。The pass/fail bar at the top of the Test Explorer window is animated as the tests run. テストの実行の終了時に、すべてのテストが成功した場合は、成功/失敗ステータス バーが緑色に変わり、いずれかのテストが失敗した場合は、赤色に変わります。At the conclusion of the test run, the pass/fail bar turns green if all tests passed or turns red if any test failed.

各ビルドの後にテストを実行するRun tests after every build

ビルド後に実行 各ローカル ビルドの後で単体テストを実行するには、標準のメニューの [テスト] を選択し、テスト エクスプローラーのツール バーの [ビルド後にテストを実行] を選択します。To run your unit tests after each local build, choose Test on the standard menu, and then choose Run Tests After Build on the Test Explorer toolbar.

テスト結果を表示するView test results

テストを実行して、記述し、再実行すると、テスト エクスプローラーに [失敗したテスト][成功したテスト][スキップされたテスト] 、および [テストを実行しない] のグループの結果が表示されます。As you run, write, and rerun your tests, Test Explorer displays the results in groups of Failed Tests, Passed Tests, Skipped Tests and Not Run Tests. テスト エクスプローラーの下部の詳細ペインに、テストの実行の概要が表示されます。The details pane at the bottom of Test Explorer displays a summary of the test run.

テストの詳細を表示するView test details

個々のテストの詳細を表示するには、そのテストを選択します。To view the details of an individual test, select the test.

テスト実行の詳細

テストの詳細ペインに次の情報が表示されます。The test details pane displays the following information:

  • テスト メソッドのソース ファイル名と行番号。The source file name and the line number of the test method.

  • テストの状態。The status of the test.

  • テスト メソッドの実行に要した経過時間。The elapsed time that the test method took to run.

テストが失敗した場合、詳細ペインには次の情報も表示されます。If the test fails, the details pane also displays:

  • テストの単体テスト フレームワークによって返されたメッセージ。The message returned by the unit test framework for the test.

  • テストが失敗した時刻のスタック トレース。The stack trace at the time the test failed.

テスト メソッドのソース コードを表示するView the source code of a test method

Visual Studio エディターのテスト メソッドのソース コードを表示するには、テストを選択し、コンテキスト メニューの [テストを開く] を選択します (キーボードの F12 キー)。To display the source code for a test method in the Visual Studio editor, select the test and then choose Open Test on the context menu (Keyboard: F12).

テスト リストをグループ化およびフィルター処理するGroup and filter the test list

テスト エクスプローラーを使用すると、テストを定義済みのカテゴリにグループ化できます。Test Explorer lets you group your tests into predefined categories. テスト エクスプローラーで実行されるほとんどの単体テスト フレームワークでは、独自のカテゴリおよびカテゴリ/値のペアを定義して、テストをグループ化することができます。Most unit test frameworks that run in Test Explorer let you define your own categories and category/value pairs to group your tests. テストのプロパティに対して文字列を照合して、テストの一覧をフィルター処理することもできます。You can also filter the list of tests by matching strings against test properties.

テストの一覧のテストをグループ化するGroup tests in the test list

テストの編成方法を変更するには、[グループ化] ボタン テスト エクスプローラー グループ ボタンの横にある下向き矢印を選択し、新しいグループ化の条件を選択します。To change the way that tests are organized, choose the down arrow next to the Group By button Test Explorer group button and select a new grouping criteria.

テスト エクスプローラーでテストをカテゴリ別にグループ化する

テスト エクスプローラーのグループTest Explorer groups

グループ化Group 説明Description
期間Duration 実行時間によるテストのグループ化: [高速][通常]、および [低速]Groups test by execution time: Fast, Medium, and Slow.
OutcomeOutcome 実行結果によるテストのグループ化: [失敗したテスト][スキップされたテスト][成功したテスト]Groups tests by execution results: Failed Tests, Skipped Tests, Passed Tests.
TraitsTraits ユーザーが定義するカテゴリ/値のペアによるテストのグループ化。Groups test by category/value pairs that you define. 特徴のカテゴリと値を指定する構文は、単体テスト フレームワークによって定義されます。The syntax to specify trait categories and values is defined by the unit test framework.
プロジェクトProject プロジェクトの名前によるテストのグループ化。Groups test by the name of the projects.

特徴でグループ化するGroup by traits

通常、特徴はカテゴリ名/値のペアですが、1 つのカテゴリにすることもできます。A trait is usually a category name/value pair, but it can also be a single category. 特徴は、単体テスト フレームワークによってテスト メソッドとして識別されるメソッドに割り当てることができます。Traits can be assigned to methods that are identified as a test method by the unit test framework. 単体テスト フレームワークは、特徴のカテゴリを定義できます。A unit test framework can define trait categories. 特徴のカテゴリに値を追加して、独自のカテゴリ名/値のペアを定義できます。You can add values to the trait categories to define your own category name/value pairs. 特徴のカテゴリと値を指定する構文は、単体テスト フレームワークによって定義されます。The syntax to specify trait categories and values is defined by the unit test framework.

マネージド コード用の Microsoft 単体テスト フレームワークでの特徴の定義Traits in the Microsoft Unit Testing Framework for Managed Code

マネージド アプリケーション用の Microsoft 単体テスト フレームワークで、 TestPropertyAttribute 属性の特徴の名前/値のペアを定義します。In the Microsoft unit test framework for managed apps, you define a trait name/ value pair in a TestPropertyAttribute attribute. テスト フレームワークには、次の定義済みの特徴も含まれています。The test framework also contains these predefined traits:

特徴Trait 説明Description
OwnerAttribute 所有者カテゴリは、単体テスト フレームワークによって定義されます。所有者の文字列値を指定する必要があります。The Owner category is defined by the unit test framework and requires you to provide a string value of the owner.
PriorityAttribute 優先度カテゴリは、単体テスト フレームワークによって定義されます。優先度の整数値を指定する必要があります。The Priority category is defined by the unit test framework and requires you to provide an integer value of the priority.
TestCategoryAttribute TestCategory 属性を使用すると、値なしでカテゴリを指定できます。The TestCategory attribute enables you to provide a category without a value. TestCategory 属性で定義されるカテゴリは、TestProperty 属性のカテゴリでもあります。A category defined by the TestCategory attribute can also be the category of a TestProperty attribute.
TestPropertyAttribute TestProperty 属性を使用すると、特徴のカテゴリ/値のペアを定義できます。The TestProperty attribute enables you to define trait category/value pair.

C++ 用の Microsoft 単体テスト フレームワークでの特徴の定義C++ 用の Microsoft 単体テスト フレームワークの使用方法」を参照してください。Traits in the Microsoft Unit Testing Framework for C++ See How to use the Microsoft Unit Testing Framework for C++.

テスト リストを検索およびフィルター処理するSearch and filter the test list

テスト エクスプローラーのフィルターを使用して、表示および実行するプロジェクトのテスト メソッドを制限できます。You can use Test Explorer filters to limit the test methods in your projects that you view and run.

テスト エクスプローラーの検索ボックスに文字列を入力して Enter キーを押すと、完全修飾名にその文字列が含まれるテストだけを表示するようにテスト リストがフィルター処理されます。When you type a string in in the Test Explorer search box and choose ENTER, the test list is filtered to display only those tests whose fully qualified names contain the string.

異なる条件でフィルター処理するにはTo filter by a different criteria:

  1. 検索ボックスの右にあるドロップダウン リストを開きます。Open the drop-down list to the right of the search box.

  2. 新しい条件を選択します。Choose a new criteria.

  3. 引用符の間にフィルターの値を入力します。Enter the filter value between the quotation marks.

テスト エクスプローラーでテストをフィルター処理する

注意

検索では大文字と小文字を区別せず、指定された文字列が条件の値の一部と一致するかどうかを照合します。Searches are case insensitive and match the specified string to any part of the criteria value.

修飾子Qualifier 説明Description
特徴Trait 特徴のカテゴリと値の両方から一致を検索します。Searches both trait category and value for matches. 特徴のカテゴリと値を指定する構文は、単体テスト フレームワークによって定義されます。The syntax to specify trait categories and values are defined by the unit test framework.
プロジェクトProject テスト プロジェクト名から一致を検索します。Searches the test project names for matches.
エラー メッセージError Message 失敗したアサートが返すユーザー定義エラー メッセージから一致を検索します。Searches the user-defined error messages returned by failed asserts for matches.
ファイル パスFile Path テストのソース ファイルの完全修飾ファイル名から一致を検索します。Searches the fully qualified file name of test source files for matches.
Fully Qualified NameFully Qualified Name テストの名前空間、クラス、およびメソッドの完全修飾ファイル名から一致を検索します。Searches the fully qualified file name of test namespaces, classes, and methods for matches.
出力Output 標準出力 (stdout) または標準エラー (stderr) に書き込まれるユーザー定義のエラー メッセージを検索します。Searches the user-defined error messages that are written to standard output (stdout) or standard error (stderr). 出力メッセージを指定する構文は、単体テスト フレームワークによって定義されます。The syntax to specify output messages are defined by the unit test framework.
OutcomeOutcome テスト エクスプローラーのカテゴリ名から一致を検索します: [失敗したテスト][スキップされたテスト][成功したテスト]Searches the Test Explorer category names for matches: Failed Tests, Skipped Tests, Passed Tests.

フィルター処理結果のサブセットを除外するには、次の構文を使用します。To exclude a subset of the results of a filter, use the following syntax:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

たとえば、FullName:"MyClass" - FullName:"PerfTest" の場合、名前に "PerfTest" も含むテストを除いて、名前に "MyClass" を含むすべてのテストを返します。For example, FullName:"MyClass" - FullName:"PerfTest" returns all tests that include "MyClass" in their name, except tests that also include "PerfTest" in their name.

カスタム プレイリストを作成するCreate custom playlists

グループとして実行または表示するテストのリストを作成して保存できます。You can create and save a list of tests that you want to run or view as a group. プレイリストを選択すると、リスト内のテストがテスト エクスプローラーに表示されます。When you select a playlist, the tests in the list are displayed Test Explorer. テストを複数のプレイリストに追加することができ、既定の [すべてのテスト] プレイリストを選択すると、プロジェクトのすべてのテストを使用できます。You can add a test to more than one playlist, and all tests in your project are available when you choose the default All Tests playlist.

プレイリストを選択

プレイリストを作成するには、テスト エクスプローラーで 1 つ以上のテストを選択します。To create a playlist, choose one or more tests in Test Explorer. コンテキスト メニューで、 [プレイリストに追加][新しいプレイリスト] を選択します。On the context menu, choose Add to Playlist, NewPlaylist. [新しいプレイリストの作成] ダイアログ ボックスで指定した場所と名前で、ファイルを保存します。Save the file with the name and location that you specify in the Create New Playlist dialog box.

プレイリストにテストを追加するには、テスト エクスプローラーで 1 つ以上のテストを選択します。To add tests to a playlist, choose one or more tests in Test Explorer. コンテキスト メニューで、 [プレイリストに追加] をクリックし、テストを追加するプレイリストを選択します。On the context menu, choose Add to Playlist, and then choose the playlist that you want to add the tests to.

プレイリストを開くには、Visual Studio メニューから [テスト]、[プレイリスト] を選択し、最近使用されたプレイリストのリストから選択するか、[プレイリストを開く] を選択してプレイリストの名前と場所を指定します。To open a playlist, choose Test, Playlist from the Visual Studio menu, and either choose from the list of recently used playlists, or choose Open Playlist to specify the name and location of the playlist.

個々のテストに実行順序を定める依存関係がない場合、ツール バーにあるIf individual tests have no dependencies that prevent them from being run in any order, turn on parallel test execution with the UTE_parallelicon-small トグル ボタンで並列テストの実行を有効にします。toggle button on the toolbar. これにより、すべてのテスト実行にかかる時間を著しく短縮できます。This can noticeably reduce the time taken to run all the tests.

単体テストをデバッグおよび分析するDebug and analyze unit tests

単体テストをデバッグするDebug unit tests

テスト エクスプローラーを使用して、テストのデバッグ セッションを開始できます。You can use Test Explorer to start a debugging session for your tests. Visual Studio デバッガーを使用してコードをシームレスにステップ実行すると、テスト対象のプロジェクトと単体テストの間を切り替えることができます。Stepping through your code with the Visual Studio debugger seamlessly takes you back and forth between the unit tests and the project under test. デバッグを開始するには:To start debugging:

  1. Visual Studio エディターで、デバッグする 1 つ以上のテスト メソッドにブレークポイントを設定します。In the Visual Studio editor, set a breakpoint in one or more test methods that you want to debug.

    注意

    テスト メソッドを任意の順序で実行できるため、デバッグするすべてのテスト メソッドにブレークポイントを設定します。Because test methods can run in any order, set breakpoints in all the test methods that you want to debug.

  2. テスト エクスプローラーでテスト メソッドを選択し、コンテキスト メニューの [選択したテストのデバッグ] を選択します。In Test Explorer, select the test methods and then choose Debug Selected Tests on the context menu.

    デバッガーについて詳しくは、「 Debugging in Visual Studio」をご覧ください。For more information, about the debugger, see Debugging in Visual Studio.

テスト メソッドのパフォーマンスの問題を診断するDiagnose test method performance issues

テスト メソッドに時間がかかる原因を診断するには、エクスプローラーでメソッドを選択し、コンテキスト メニューの [プロファイル] を選択します。To diagnose why a test method is taking too much time, select the method in Test Explorer and then choose Profile on the context menu. パフォーマンス エクスプローラー」を参照してください。See Performance Explorer.

単体テストのコード カバレッジを分析するAnalyze unit test code coverage

Visual Studio のコード カバレッジ ツールを使用して、単体テストで実際にテスト中の製品コードの量を確認できます。You can determine the amount of your product code that is actually being tested by your unit tests by using the Visual Studio code coverage tool. 選択したテストまたはソリューションのすべてのテストのコード カバレッジを実行できます。You can run code coverage on selected tests or on all tests in a solution.

ソリューションのテスト メソッドのコード カバレッジを実行するには:To run code coverage for test methods in a solution:

  1. Visual Studio メニューの [テスト] を選択し、 [コード カバレッジの分析] を選択します。Choose Tests on the Visual Studio menu and then choose Analyze code coverage.

  2. サブメニューから次のいずれかのコマンドを選択します。Choose one of the following commands from the sub-menu:

    • [選択されたテスト] : テスト エクスプローラーで選択したテスト メソッドを実行します。Selected tests runs the test methods that you have selected in Test Explorer.

    • [All tests (すべてのテスト)] : ソリューション内のすべてのテスト メソッドを実行します。All tests runs all the test methods in the solution.

[コード カバレッジの結果] ウィンドウに、行、関数、クラス、名前空間、およびモジュールで実行された製品コードのブロックのパーセンテージが表示されます。The Code Coverage Results window displays the percentage of the blocks of product code that were exercised by line, function, class, namespace and module.

詳細については、「コード カバレッジを使用した、テストされるプロジェクトのコード割合の確認」を参照してください。For more information, see Using Code Coverage to Determine How Much Code is being Tested.

テスト ショートカットTest shortcuts

テストはテスト エクスプローラーから実行できます。テストのコード エディター内で右クリックし、[テストの実行] を選択するか、Visual Studio のテスト エクスプローラー ショートカットを使用します。Tests can be run from the Test Explorer, by right-clicking in the code editor on a test and selecting Run test, or by using the default Test Explorer shortcuts in Visual Studio. ショートカットの一部はコンテキストベースです。Some of the shortcuts are context-based. つまり、コード エディター内のカーソルの位置に基づいてテストが実行またはデバッグされます。This means that they run or debug tests based on where your cursor is in the code editor. カーソルがテスト メソッド内にある場合、そのテスト メソッドが実行されます。If your cursor is inside a test method, then that test method runs. カーソルがクラス レベルにある場合、そのクラスのすべてのテストが実行されます。If your cursor is at the class level, then all the tests in that class run. 名前空間レベルの場合も同じことが適用されます。This is the same for the namespace level as well.

頻繁に使用されるコマンドFrequent Commands ショートカット キーKeyboard Shortcuts
TestExplorer.DebugAllTestsInContextTestExplorer.DebugAllTestsInContext Ctrl + R、Ctrl + TCtrl+R, Ctrl+T
TestExplorer.RunAllTestsInContextTestExplorer.RunAllTestsInContext Ctrl + R、TCtrl+R, T

注意

抽象クラスではテストを実行できません。テストは抽象クラスでのみ定義され、インスタンス化されないためです。You can't run a test in an abstract class, because tests are only defined in abstract classes and not instantiated. 抽象クラスでテストを実行するには、抽象クラスから誘導されるクラスを作成します。To run tests in abstract classes, create a class that derives from the abstract class.

関連項目See also