ビルド プロセスでのテストの実行
ビルド処理の一環として、Team Foundation ビルド を使用して自動テストを実行し、コードに加えた変更のテストへの影響を分析することができます。たとえば、ビルド処理を定義して、定期的にスケジュールされたチームのビルド確認テスト (BVT) の実行に使用することができます。また、自動テストを実行し、カスタム ビルド処理からテスト関連のタスクを実行することもできます。
[!メモ]
ビルド処理の一部としてアプリケーションを配置する場合は、ビルド、配置、テストのワーク フローおよびラボ環境を使用する必要があります。ワークフローの一部として自動テストを実行したり、ワークフローが完了した後に別途テストを実行することができます。詳細については、「自動ビルド、配置、およびテストのワークフローの設定」を参照してください。
このトピックの内容
ビルド処理でテストの実行を準備する
必要なアクセス許可
テストの実行を使用して自動テストを実行する
テスト ランナーを選択して構成する
Visual Studio テスト ランナーを使用してテストを実行する
MSTest を使用してテストを実行する
テストを一時的に無効にする
テスト影響分析を有効にする
サードパーティ製の単体テスト フレームワークを構成する
カスタム ビルド処理からテストを実行する
参照項目
ビルド処理でテスト実行を準備する
ビルド処理でテストを実行する前に、最初にテストとビルド システムを準備する必要があります。
テストを準備する: ソリューションおよびテスト ファイルがバージョン コントロールにチェックインされていることを確認します。「バージョン管理の使用」を参照してください。
テストをカテゴリに分類し、優先度を付ける (オプション) : ビルドのテストを実行するときに、カテゴリおよび優先度を割り当てることで、これらの属性でフィルター処理を行うことができます。たとえば、CI というテスト カテゴリを作成し、継続的な統合ビルドでそのカテゴリを指定できます。また、bvt というビルド確認テスト カテゴリを作成し、夜間ビルドなどのスケジュール ビルドでそのカテゴリを指定できます。詳細については、「テスト カテゴリの定義によるテストのグループ化」、「TestCategoryAttribute」および「PriorityAttribute」を参照してください。
ビルド サーバーを準備します。: 一部のテストは、特殊な構成のビルド サーバーでビルド エージェントによってのみ実行できます。たとえば、コード化された UI テストを実行する場合、ビルド エージェントを対話的に実行されるように構成する必要があります。テストの実行に、ビルド処理を使用する前に確認しますが、使用するビルド サーバーで実行できることを示します。詳細については、「テストを実行するためのビルド エージェントを有効にします。」を参照してください。
Microsoft Visual Studio は、次のシナリオのビルド サーバーにインストールする必要があります:
CPP のテスト プロジェクトをビルドするには、Visual Studio Professional または後にインストールする必要があります。
単体テスト、またはコード化された UI テスト、実行するには Visual Studio Professional または後にインストールする必要があります。
データと診断データ アダプターを使用する場合:
:コード カバレッジ Visual Studio Premium 以降。
テストの影響: Visual Studio Ultimate。
IntelliTrace: Visual Studio Ultimate。
ビルド コンピューターの最新のスタイルの apps をビルドするには: Visual Studio Ultimate か Visual Studio Express for Windows 8 (ビルド サーバーのオペレーティング システムが Windows 8) である必要があります。
コンパイルすると) アセンブリとプロジェクトのテスト: Visual Studio Ultimate。
必要なアクセス許可
これらの手順を実行するには、[ビルド定義の編集] アクセス許可が [許可] に設定されている必要があります。詳細については、「Team Foundation Server のアクセス許可」を参照してください。
自動テストを実行する
既定のテンプレートに基づくビルドで一つ以上のテスト実行を実行できます。テストの実行ごとに、次の設定を指定できます。
実行するテスト
テストの実行に使用する設定
テストが失敗した場合にビルドを失敗とするかどうか
既定のテンプレートに基づくビルド処理の自動テストを実行する
メニュー バーの [表示]、[チーム エクスプローラー] を選択します。
[チーム エクスプローラー] で、[ホーム] を選択し、[ビルド] を選択します。
[ビルド] ページで [ビルド定義の新規作成] を選択するか、ビルドまたは選択したビルド定義のショートカット メニューを開き、[ビルド定義の編集] を選択します。
[ビルド定義] ウィンドウが開きます。
ビルド定義の [プロセス] タブで、[基本] ノードを展開します。
[自動テスト] のチェック ボックスを選択し、省略記号ボタン(...)をクリックします。
[自動テスト] ダイアログ ボックスが表示されます。
次のいずれかの操作を実行します。
一連のテストを追加するには、[追加] を選択します。
一連のテストを変更するには、テストを選択し、[編集] を選択します。
[テストの追加/編集] ダイアログ ボックスが表示されます。
(オプション) テスト実行の [名前] を指定します。この名前がビルド結果ウィンドウに表示されます。名前を指定しない場合は、システムによって名前が自動生成されます。
このテスト実行に含まれるテストのいずれかが失敗した場合にビルドを失敗とする場合は、[テスト失敗時にビルドを失敗させる] を選択します。このチェック ボックスをオフのままにし、いずれかのテストが失敗すると、完了したビルドは [一部成功] に分類されます。
テスト ランナーを選択します。表示されるオプションを使用して、テスト ランナーの動作を指定します。詳細については、「テスト ランナーを選択して構成する」を参照してください。
テスト ランナーを選択して構成する
ビルド処理を定義したら、必要な機能を備えたテスト ランナーを選択します。
機能 |
Visual Studio テスト ランナー |
MSTest |
---|---|---|
Microsoft.VisualStudio.TestTools.UnitTesting フレームワークで記述された単体テストを実行する |
○ |
○ |
コード化された UI テスト、ジェネリック テストおよび順序指定テストを実行する |
○ |
○ |
コード カバレッジ データを収集する |
○ |
○ |
NUnit、xUnit などの複数のフレームワークで記述された単体テストを実行する |
○ |
X |
ネイティブ (C++ など) バイナリの単体テストを実行する |
○ |
X |
Windows ストア アプリケーションの単体テストを実行する |
○ |
X |
64 ビット テストを実行する
メモ
MSTest では、プラットフォームとして指定された任意の CPU でコンパイルされたバイナリで 64 ビット テストを実行できます。
|
○ |
X |
フェイク フレームワーク オブジェクトに従ってテストを実行する テスト フェイク フレームワークを使用して、.NET Framework アプリケーションでデリゲートベースのテスト スタブと shim を作成する詳細については、「Microsoft Fakes を使用したテストでのコードの分離」を参照してください。 |
○ |
X |
データベース テスト データを生成し、データベース単体テストを実行する |
X |
○ |
テスト影響分析用のデータを収集する |
X |
○ |
負荷テストと Web テストを実行する |
X |
○ |
[!メモ]
これらの機能の一部は、特殊な構成のビルド サーバー ビルド エージェントだけで機能します。詳細については、「テストを実行するためのビルド エージェントを有効にします。」を参照してください。
テストの実行が必要な機能を理解したら、テスト ランナーを選択します。
Visual Studio テスト ランナー
テスト設定ファイルを使用した MSTest
メタデータ ファイルを使用した MSTest
Visual Studio テスト ランナーを使用してテストを実行する
Visual Studio テスト ランナーを既定のテンプレートに基づくビルド処理からテストを実行するには
チーム エクスプローラーで、[ビルド] を開き、ビルド定義を追加または編集します。
[プロセス] ページで、[基本] を展開し、[自動テスト] を選択します。省略記号ボタン(...)を行の末尾に選択して、[追加] か [編集] にテストのソース・選択します。
[テストの実行の追加と編集] ダイアログ ボックスで、[テスト ランナー] の下の [Visual Studio テスト ランナー] を選択します。
テスト アセンブリ ファイルの指定
実行されるテストが含まれるバイナリ ファイルを指定します。ビルド エージェントの作業ディレクトリの binaries サブディレクトリで *test*.dll と一致するすべての .dll ファイルが再帰的に検索されるようにする場合は、既定値 (**\*test*.dll) のままにします。または、ニーズに合わせてファイル指定を変更します。
テスト実行でコード カバレッジ データを収集および公開する場合は、[オプション] で [コード カバレッジを有効にする] を設定します。
または、[カスタム] オプションを使用して .runsettings ファイルを指定します。詳細については、「コード カバレッジ分析のカスタマイズ」を参照してください。
[テスト実行するターゲット プラットフォームの選択] メニューで、[x86] を選択して 32 ビット バイナリをテストするか、[x64] を選択して 64 ビット バイナリをテストします。
実行されるテストの条件を指定できます。
Visual Studio テスト ランナーで実行されるテストの条件を指定する
実行されるテストをフィルター処理するための名前と値のペアを指定できます。テスト カテゴリと優先度属性を使用してテストの整列と優先順位付けを行った場合、TestCategory および優先度の名前を使用して実行されるテストをフィルター処理できます。
テスト カテゴリは、次のいずれかの形式で指定できます。
フィルターに含める 1 つの名前と値のペアを指定します。たとえば、bvt というテスト カテゴリを作成したとします。[テスト ケース フィルター] を TestCategory=bvt に設定すると、このカテゴリのテストだけが実行されます。
**|| (OR 演算子) を使用して、複数のテスト カテゴリを指定します。**たとえば、TestCategory=quick||TestCategory=gui と指定すると、quick カテゴリに含まれるテストと gui カテゴリに含まれるテストを実行できます。
MSTest を使用してテストを実行する
テストを既定のテンプレートに基づくビルド処理の MSTest を使用して実行するには
テスト実行を使用して自動テストやその他のテスト タスクを実行し、続けて [テストの実行の追加と編集] ダイアログ ボックスの [テスト ランナー] で、
MSTest.exe ランナーを選択します。
実行されるテストが含まれるバイナリ ファイルを指定します。ビルド エージェントの作業ディレクトリの binaries サブディレクトリで *test*.dll と一致するすべての .dll ファイルが再帰的に検索されるようにする場合は、既定値 (**\*test*.dll) のままにします。または、ニーズに合わせてファイル指定を変更します。
(省略可能) [テスト設定ファイル] を指定して、テストの実行方法を設定します。詳細については、「Visual Studio のテストにおけるテスト設定の指定」を参照してください。
MsTest のテスト メタデータ ファイル (廃止)
このオプションを選択した場合は、[参照] をクリックして、使用するテスト メタデータ ファイルを探して指定します。次に、[この VSMDI ファイルのすべてのテストを実行する] チェック ボックスをオンのままにするか、このチェック ボックスをオフにしてから [実行するテスト リスト] ボックスの一覧で 1 つ以上のテストを選択できます。
[!メモ]
テスト リストは廃止されています。詳細については、「テスト カテゴリの定義によるテストのグループ化」を参照してください。
[基準/引数] タブをクリックします。
実行するテストをカテゴリでフィルター処理できます。
テスト カテゴリは、次のいずれかの形式で指定できます。
**テストを対象または対象外とする 1 つのテスト カテゴリを指定する。**たとえば、bvt というテスト カテゴリを作成したとします。このパラメーターを bvt に設定すると、このカテゴリのテストだけが実行され、!bvt に設定すると、このカテゴリのテストを除くすべてのテストが実行されます。
**& (AND 演算子) と ! (NOT 演算子) を使用して複数のテスト カテゴリを指定する。**たとえば、quick&gui&!deep と指定すると、quick カテゴリと gui カテゴリの両方に含まれ、deep カテゴリに含まれないテストだけを実行できます。
**| (OR 演算子) と ! (NOT 演算子) を使用して複数のテスト カテゴリを指定する。**たとえば、quick|gui|!deep と指定すると、quick カテゴリに含まれるテスト、gui カテゴリに含まれるテスト、および deep カテゴリに含まれないすべてのテストを実行できます。
(省略可能) 実行するテストを優先度でフィルター処理します。
ヒント テストに優先度を割り当てた場合、このパラメーターを使用して徹底したテストと高速ビルドの間のバランスを取ることができます。
[テストの最小優先度] を [テストの最大優先度] 以下の正の整数と最小値がないことを表す -1 のどちらかに設定します。
[テストの最大優先度] を [テストの最小優先度] 以上の正の整数と最大値がないことを表す -1 のいずれかに設定します。
[OK] をクリックします。
テストを一時的に無効にする
テストが含まれたテスト セットを削除せずにテストを一時的に無効にする必要がある場合は、[詳細設定] ノードを展開し、[テストの無効化] を True に設定します。テストを再び有効にする場合は、値を False に戻します。
テスト影響分析を有効にする
テスト担当者や開発者は、完了したビルドに含まれるコード変更がテストに与える影響を把握することが必要となる場合があります。テスト影響分析を有効にすると、コードの変更がテストに与える影響の分析が行われ、その結果が完了したビルドのビルド レポートに報告されます。
既定のテンプレートに基づくビルド処理のテスト影響分析を有効にするには
テスト設定ファイルでテスト影響分析を設定します。
詳細については、「方法: コードの変更後に実行するテストをチェックするためのデータを収集する」を参照してください。
テスト設定ファイルを使用するように設定されたテストのセットを作成します。
詳細については、このトピックの「自動テストを実行する」を参照してください。
[詳細設定] ノードを展開し、[テストの影響の分析] が True に設定され、[テストの無効化] が False に設定されていることを確認します。
複数のテストの実行を定義する
テストの実行は、チームのビルドおよびテスト プロセスの要件を満たすために必要な数だけ定義できます。たとえば、1 つのビルドで複数のテストの実行を定義する必要がある状況を次にいくつか示します。
Visual Studio テスト ランナーを使用して、32 ビットおよび 64 ビットのビット数を持つバイナリを生成するソリューションをテストする場合。
Visual Studio テスト ランナーで実行できるテストがいくつかあり、MSTest でのみ実行できる他のテストがある場合。
次の 2 つのテスト セットがある。
合格することが必要な優先度の最も高いコア テストのセット。[テストの最小優先度] が含まれ、[テストの最大優先度] が 1 であるテストのセットを定義する場合。[テスト失敗時にビルドを失敗させる] チェック ボックスをオンにします。
実行した方がよいが、合格しなくてもビルドの使用可能性に影響しない、重要度の低いテストのセット。[テストの最小優先度] が 2 で、[テストの最大優先度] が 3 であるテストのセットを定義する場合。[テスト失敗時にビルドを失敗させる] チェック ボックスをオフのままにします。
同じテスト セットを異なるテスト設定で実行する。
ビルドするアセンブリのメイン セットをコード カバレッジの対象とするが、外部ソースからの別のアセンブリ セットもあり、それらはコード カバレッジを必要としない。このようなプロセスを実行するには、2 つのテスト設定ファイル グループを使用するように設定された 2 つのテスト セットを使用します。
ビルド コントローラーのサードパーティの単体テスト フレームワークを有効にします。
ビルド処理は、サードパーティ製のフレームワークのアセンブリへのアクセスを、ビルド コントローラーに付けた場合にのみサードパーティの単体テスト フレームワークに基づいて単体テストを実行できます。
検索するか、必要に応じて、サーバーのカスタム アセンブリ フォルダーからワークスペースのローカル フォルダーにマップを作成します。
サードパーティの単体テスト プラグインを取得します。そのうちの一部へのリンクを次に検索できます: 単体テスト プラグインの一覧[.]
.zip ファイルにプラグイン .vsix ファイルの名前を変更します。たとえば、次のコマンド プロンプトを使用する:
C:\Downloads>ren NUnitTestAdapter.vsix NUnitTestAdapter.zip
手順 2.でマップされたローカル ワークスペース フォルダーに .zip ファイルの内容をファイルを解凍します。
-
ヒント バージョン コントロールのサードパーティのバイナリ ファイルを使用する方法については コードがビルド サードパーティの binary を使用します。を参照してください。
[[Visual Studio 2012.1]] サードパーティの単体テスト フレームワークの機能がチーム ビルド定義の追加を自動化するために含まれています。
注意 |
---|
フレームワークがビルド定義の拡張機能が含まれていることを確認するために、3 人の単体テスト フレームワークの NuGet パッケージの最新バージョンをインストールする必要があります。 |
ビルド コントローラーのサードパーティの単体テスト フレームワークを有効にする] - [Visual Studio 2012.1]
ソリューション エクスプローラーで、テスト プロジェクトのショートカット メニューを開き、[Manage NuGet Packages] を選択します。
の管理 NuGet パッケージのダイアログ ボックスで、左側の列で、[オンライン] を選択します。
サードパーティの単体テスト フレームワークの NuGet パッケージを選択し、[インストール] を選択します。
NuGet パッケージのインストールが完了した後、[閉じる] を選択します。
ソリューション エクスプローラーで、ソリューションのショートカット メニューを開き、[ソリューションをソース管理に追加] を選択します。
これで、ビルドをキューに配置し、サードパーティの単体テスト フレームワークを使用したテストが自動的に実行されます。
カスタム ビルド処理のテストを操作する
チームでより詳しくカスタマイズされた機能を持つビルド処理が必要な場合は、カスタム ビルド処理からテストを実行し、その他のテスト関連タスクを実行することができます。詳細については、次のトピックを参照してください。
詳細情報
既定テンプレートに基づくビルド プロセスの定義 は方法の詳細については既定のテンプレートに基づくビルド定義を作成できます。このトピックでは、コードをコンパイルするときに使用できる [プラットフォーム] ビット数について説明します。
「ビルド、配置、テストのワークフローに関するガイダンス」では、ラボ環境でビルド処理を使用して、アプリケーションを配置し、テストを実行する方法について説明します。
テストを実行する方法の詳細については、「Microsoft テスト マネージャーでのテストの実行」を参照してください。