方法: アプリケーションのビルド後にスケジュールされているテストを構成および実行する

ビルドの完了後にテストを実行して、ビルドの品質を評価できます。 これらのテストは、多くの場合、ビルド確認テスト (BVT: Build Verification Test) またはスモーク テストと呼ばれます。 通常これらのテストは、特定のビルドでアプリケーションの主要な区分を検証するために使用されるテストの幅広いスイートから構成されます。 BVT のすべてのテストを通過すると、そのビルドは成功と見なされます。

ビルド確認テストの一部として 1 種類以上の自動テストを使用できます。 実行できるテストの種類は、次のとおりです。

  • 単体テスト

  • データベース単体テスト

  • コード化された UI テスト

  • Web パフォーマンス テスト

  • ロード テスト

  • 汎用テスト

BVT の作成には、Visual Studio、Team Foundation バージョン管理、および Team Foundation ビルドを使用します。 最初に、Visual Studio を使用して、BVT に使用するテストにテスト カテゴリを割り当てます。 次に、Team Foundation バージョン管理を使用して、テスト カテゴリのマークが付いた自動テストをソース管理にチェックインします。 次に、ビルド定義にテスト カテゴリ フィルターを追加します。 最後に、Team Foundation ビルドを使用して、ビルドが成功した場合にテストを実行するビルドをキューに配置します。

注意

クライアント コンピューターにチーム エクスプローラーがインストールされ、Visual Studio ユーザー セッションが Team Foundation Server コンピューターに接続されている必要があります。 Team Foundation Server への接続方法の詳細については、「How to: Connect to a Team Project in Team Foundation Server」を参照してください。

このトピックでは、ビルド確認テストを作成および実行するために必要なすべての操作について説明します。

  • BVT 用のテスト カテゴリの作成

  • ビルド確認テストのチェックイン

  • ビルド定義の作成

  • ビルド エージェントおよびテスト エージェントのコンピューターまたはユーザー アカウントの TeamTestControllerUsers グループへの追加

  • コード化された UI テストを実行するためのエージェントの設定

  • BVT ビルド定義の実行

    注意

    テスト リストを使用してビルド確認テストを実行できますが、テスト リストを使用してチェックイン ポリシーを作成する必要がある場合を除き、旧バージョンの Microsoft Visual Studio 2010 のテスト リスト機能ではなく、テスト カテゴリを使用することをお勧めします。 テスト リストを作成する方法の詳細については、「方法 : テスト リストを作成する」を参照してください。

BVT 用のテスト カテゴリの作成

論理演算子を使用して & (AND)、| (OR)、! (NOT) を使用するフィルターを作成し、テストに割り当てられているカテゴリに基づいて、実行するテストを選択できます。 ビルド定義に使用できる複数のテスト カテゴリを作成して、テストを柔軟な方法で選択できます。

テスト メソッド用のテスト カテゴリを作成するには

  1. [テスト] メニューの [ウィンドウ] をクリックし、[テスト ビュー] をクリックします。

    テスト ビュー ウィンドウが表示されます。

  2. テストを選択します。

  3. 選択したテストのプロパティ ペインで、[テスト カテゴリ] 列の省略記号 (...) をクリックします。 [テスト カテゴリ] ウィンドウが表示されます。

  4. [新しいカテゴリの追加] フィールドに、新しいテスト カテゴリの名前を入力します。

  5. [追加] をクリックします。

  6. [OK] をクリックします。 新しいテスト カテゴリがテストに割り当てられ、テスト ビュー ウィンドウで他のテストに使用できるようになります。

  7. 追加のテスト カテゴリを作成するには、手順 4. ~ 6. を繰り返します。

    テスト メソッドに属性を追加してテスト カテゴリを割り当てる方法の詳細については、「方法: テスト カテゴリで自動テストをグループ化して実行する」を参照してください。

ビルド確認テストのチェックイン

この操作では、ソリューションのすべてのファイルをチェックインします。 これには、テスト メソッドに追加したテスト カテゴリが含まれます。

ビルド確認テストをソース管理にチェックインするには

  1. Team Foundation Server コンピューターに接続します。 詳細については、「How to: Connect to a Team Project in Team Foundation Server」を参照してください。

  2. ソリューションがソース管理に含まれていない場合は、ソース管理に追加します。 詳細については、「バージョン管理へのファイルの追加」を参照してください。

  3. [ビュー] をクリックし、[保留中のチェックイン] をクリックします。 [保留中のチェックイン] ウィンドウが表示されます。

  4. ソリューションのすべてのファイルをチェックインします。 詳細については、「保留中の変更のチェックイン」を参照してください。

    注意

    BVT の作成方法および管理方法に関して、チームに固有のプロセスを定めることができます。 このプロセスには、実行するテストと共にそのコードをチェックインする前にビルドをローカルで検証する、などの規定を設けます。

    チェックイン操作が完了すると、ソリューション エクスプローラーの各ファイルの隣に錠のアイコンが表示され、その [チェックイン] ステータスが示されます。 詳細については、「How to: Identify Version Control Item Status in Solution Explorer」を参照してください。

    チェックインしたテストは、ビルドで使用できます。 これで、BVT で実行するテストを含むビルド定義を作成できます。

ビルド定義の作成

BVT ビルド定義を作成するには

  1. チーム エクスプローラーで、チーム プロジェクトをクリックします。

  2. [ビルド] を右クリックし、[ビルド定義の新規作成] をクリックします。

    [ビルド定義の新規作成] タブが表示されます。

  3. 新しいビルド定義の情報を入力します。 詳細については、「基本的なビルド定義の作成」を参照してください。

  4. [ビルド定義名] ボックスに、ビルド定義に関連付ける名前を指定します。

  5. (省略可能) [説明] ボックスに、適切な説明を追加します。

  6. [ワークスペース] をクリックします。

    作業フォルダー テーブルには、新しいビルド定義を作成しているチーム プロジェクト用のソース管理フォルダーと、ビルド エージェント上のローカル フォルダーが含まれています。 ビルド エージェント上のローカル フォルダーは、[ローカル フォルダー] 列に表示されます。 ビルド エージェント上のすべてのワークスペース パスは、表示されている既定のルート ディレクトリに対してマップされます。

  7. 既存のワークスペースを作業フォルダーの一覧にコピーするには、[既存のワークスペースのコピー] をクリックして [コピーするワークスペースを選択] ダイアログ ボックスを開きます。

    選択したワークスペースは、$(SourceDir) というビルド エージェントで共通のルート ディレクトリに正規化されます。 SourceDir は、$(BuildDir)\Sources に展開する環境変数です。

    [ソース管理フォルダー] で空のテーブル セルをクリックし、省略記号 (…) をクリックしてソース管理フォルダーを参照し、作業フォルダーを追加することもできます。 選択したソース管理フォルダーは、ビルド エージェントでの共通のルート ディレクトリに対して正規化されます。

  8. [ビルドの既定値] をクリックします。

    [ビルドの既定値] ペインの [ビルド コントローラー] ドロップダウン リストで、ビルド コントローラー (存在する場合) を選択できます。 オプションで [管理] をクリックし、[ビルド コントローラーの管理] ダイアログ ボックスを開きます。

    [ビルド出力を次の格納フォルダーにコピーします] に、場所などの UNC パス (例: \\server\share) を入力します。 ビルドの完了直後に、ビルド バイナリとログ ファイルがこのフォルダーに配置されます。 格納フォルダーの設定方法の詳細については、「ドロップ フォルダーのセットアップ」を参照してください。

    ビルド定義の一部として、コード化された UI テスト、Web パフォーマンス テスト、またはロード テストを実行する場合は、この場所にあるビルドからの出力を使用して、アプリケーションを起動するかインストールする必要があります。 ビルドの完了後およびテストの実行前にアプリケーションを自動的にインストールするには、アプリケーションを仮想環境に配置できるラボの既定のテンプレートを使用するか、このラボの既定のテンプレートを変更して、アプリケーションを物理環境に配置します。

    注意

    この手順を完了する前に、TFSService アカウントがフル アクセス権を持つパブリック フォルダーを作成しておく必要があります。 Team Foundation サービス アカウントの詳細については、「Team Foundation Server サービスの表示」を参照してください。

  9. [プロセス] をクリックします。

  10. [必須] セクションで、[ビルドする項目] をクリックします。 次に、省略記号 (...) をクリックします。

    [ビルドする項目] ダイアログ ボックスが表示されます。

  11. [追加] をクリックします。 次に、バージョン管理ツリーでビルドするソリューションまたはプロジェクトを探し、[OK] をクリックします。

  12. [ビルドする項目] ダイアログ ボックスで、[OK] をクリックします。

  13. ビルドが完了したときに実行するテストのテスト カテゴリを追加するには、[基本] セクションを開きます。 [自動テスト] セクションで、[テスト アセンブリ] を開き、[カテゴリ フィルター] をクリックします。 テスト カテゴリに基づいてテスト メソッドを選択するために必要なフィルターを入力します。

    注意

    テスト カテゴリ フィルターは、1 つまたは複数のテスト カテゴリ名を論理演算子 '&'、'|'、'!'、'&!' で区切って指定します。 たとえば、ShoppingCart&SmokeTest の場合は、テスト カテゴリが ShoppingCart および SmokeTest のすべてのテストが実行されます。 または、SmokeTest を入力して 1 つのカテゴリのすべてのテストを選択することもできます (論理演算子 '&' と '|' を同時に使用してテスト カテゴリ フィルターを作成することはできません)。

  14. テスト アセンブリを探すための検索パターンを指定するには、[テスト アセンブリのファイルスペック] をクリックします。 検索文字列を入力します。 たとえば、すべての dll の名前に "test" という名前が含まれている場合は "**\*test*.dll" となります。

    注意

    この検索文字列を指定すると、ディレクトリ内が再帰的に検索されて、Binaries ディレクトリ内の *test*.dll に一致するすべての dll が検出されます。 詳細については、「ビルド処理の定義」を参照してください。

  15. (省略可能) テストを実行するときに使用するテスト設定ファイルを選択するには、[自動テスト] を開き、[テスト アセンブリ] を開き、[テストの設定ファイル] をクリックして、省略記号 (...) をクリックします。

    [参照] ダイアログ ボックスが表示されます。 使用するテスト設定を含むテストの設定ファイルを探し、[OK] をクリックします。

    テスト設定ファイルでテスト コントローラーとテスト エージェントを使用している場合は、後述する「ビルド エージェントおよびテスト エージェントのユーザー アカウントまたはコンピューターの TeamTestControllerUsers グループへの追加」の手順を参照してください。

    コード化された UI テストを実行している場合は、後述する「コード化された UI テストを実行するようにテスト エージェントを設定」で、テスト設定ファイルに基づいてエージェントを設定するための手順を参照してください。

    注意

    [詳細設定] セクションの [エージェントの設定] を使用して、使用する特定のエージェントを選択します。 たとえば、コード化された UI テストを実行している場合に、対話形式のプロセスとして実行されているエージェントを選択する必要がある場合は、ここでエージェントを選択できます。

    テストの設定ファイルの詳細については、「Visual Studio から自動テストを実行するためのテストの設定の作成」を参照してください。

    注意

    既定のテストの設定ファイルは 2 つあります。 Local.testsettings では、既定でシステム情報だけが収集されます。 IntelliTrace データも収集し、テスト影響分析データを収集して、ビルドの変更に基づいて実行が推奨されるテストを決定する場合は、TraceAndTestImpact.testsettings という名前のテストの設定ファイルを選択する必要があります。

  16. (省略可能) ビルド処理の一部としてロード テストを実行するには、ロード テストの結果のリポジトリを設定し、そのリポジトリを使用するように、テストの設定で指定されたテスト コントローラーを構成する必要があります。 詳細については、「方法 : ロード テストの結果リポジトリを選択する」を参照してください。

  17. 新しいビルド定義を保存するには、[保存] をクリックします。

    新しいビルド定義がチーム エクスプローラー ウィンドウの [ビルド] フォルダーの下に表示されます。

    注意

    テスト カテゴリの代わりに、ビルドの完了時に実行するテスト リストを追加する場合は、この作業を実行するコマンド ライン引数を追加できます。 コマンド ライン引数の詳細については、「コマンド ラインからの自動テストの実行」を参照してください。

ビルド エージェントおよびテスト エージェントのユーザー アカウントまたはコンピューターの TeamTestControllerUsers グループへの追加

ビルド定義に追加したテストの設定ファイルでテスト コントローラーとテスト エージェントを使用する場合は、テスト コントローラー コンピューターの TeamTestControllerUsers セキュリティ グループに、使用するすべてのビルド エージェントおよびテスト エージェントのコンピューターを追加する必要があります。 たとえば、コード化された UI テストをビルド処理の一部として実行する場合は、これらのコンピューターをこのセキュリティ グループに追加する必要があります。

ヒント

ビルド エージェントまたはテスト エージェントが、ネットワーク サービス アカウントではなく別のユーザーを使用するように設定されている場合は、代わりにこのドメイン ユーザー アカウントが TeamTestControllerUsers グループに追加されていることを確認する必要があります。

ビルド エージェントおよびテスト エージェントのユーザーまたはコンピューターを TeamTestControllerUsers グループに追加するには

  1. テスト コントローラーのコンピューターで、[スタート] ボタンをクリックし、[コントロール パネル] をクリックします。[管理ツール] をポイントし、[コンピューターの管理] をクリックします。

    [コンピューターの管理] ダイアログ ボックスが表示されます。

  2. [ローカル ユーザーとグループ] を開き、[グループ] をクリックします。

    グループが表示されます。

  3. ユーザーまたはコンピューターを追加するには、TeamTestControllerUsers を右クリックし、[グループに追加] をクリックします。

    [TeamTestControllerUsers プロパティ] ダイアログ ボックスが表示されます。

  4. メンバーの一覧を参照して、該当のドメイン ユーザー アカウントまたはコンピューターが追加されているかどうかを確認します。 追加されていない場合は、[追加] をクリックします。

    [ユーザー、コンピューターまたはグループの選択] ダイアログ ボックスが表示されます。

  5. 既定では、ユーザーまたはグループだけが表示されます。 コンピューターを追加するには、[オブジェクトの種類] をクリックし、[コンピューター] を選択して、[OK] をクリックします。

  6. コンピューターを追加するには、[選択するオブジェクト名を入力してください] ボックスに、コンピューターの名前を入力して、[OK] をクリックします。

    ヒント

    ビルド エージェントが実行されているコンピューターおよびテスト エージェント用のコンピューターの両方を追加する必要があります。

  7. ドメイン ユーザー アカウントを追加するには、場所が正しいかどうかを確認し、[選択するオブジェクト名を入力してください] ボックスに、ユーザー アカウントの名前を入力し、[OK] をクリックします。

    重要

    この手順を繰り返し、必要なユーザー アカウントをすべて追加します。

  8. [OK] をクリックして変更を適用します。

コード化された UI テストを実行するようにテスト エージェントを設定

アプリケーションをビルドした後にスケジュールされたテストの一部としてコード化された UI テストを実行する場合は、次のいずれかを実行する必要があります。

  • テスト エージェント コントローラーおよびアプリケーションのロールを指定するテスト設定ファイルを使用して、テストを実行します。 Microsoft Visual Studio 2010 を使用して、テスト設定を作成します。 テスト エージェントのいずれか 1 つをテストの設定でテストを実行するロールに割り当てている場合は、この手順に従って、テスト エージェントがサービスではなくプロセスとして実行されるように設定する必要があります。 テスト コントローラーとテスト エージェントの詳細については、「テスト コンピューターでのテストの実行またはデータの収集の設定」および「Visual Studio Agents、テスト コントローラー、およびビルド コントローラーのインストールと構成」を参照してください。

  • テスト コントローラーを指定しないテスト設定ファイルを使用します。 この場合は、ビルド エージェント サービスがデスクトップと対話できるように設定する必要があります。 サービスのプロパティで [デスクトップとの対話をサービスに許可] チェック ボックスをオンにします。 これにより、ビルド エージェントがコード化された UI テストを実行できるようになります。

    ヒント

    ブラウザーを起動するコード化された UI テストを実行する場合、ビルド サービスのサービス アカウントがそのブラウザーの起動に使用されます。 このサービス アカウントは、このコンピューターでアクティブなユーザーであるユーザー アカウントと同じである必要があります。 同じユーザー アカウントでない場合、ブラウザーは起動しません。

コード化された UI テストを実行するようにテスト エージェントを設定するには

チーム ビルドを使用して BVT を実行するには

チーム ビルドを使用して BVT を実行するには

  1. チーム エクスプローラーで、チーム プロジェクトをクリックします。

  2. [ビルド] を右クリックし、[新しいビルドをキューに配置] をクリックします。

  3. (省略可能) ビルドの場所およびディレクトリを変更します。

  4. [キューに登録] をクリックします。

    ビルドが開始されて、[ビルド エクスプローラー] ダイアログ ボックスが表示されます。

  5. ビルドが完了したら、[完了] をクリックして詳細を表示します。

  6. ビルドの詳細を表示する場合は、一覧内のビルドをダブルクリックします。

    ビルド情報を示す新しいタブが表示されます。 テストの実行の状態を表示できます。

  7. テストの結果の詳細を表示するには、矢印をクリックしてテストを開き、[テスト結果の表示] をクリックします。

  8. テスト結果をローカルに保存するフォルダーを選択します。

    [テスト結果] ウィンドウにテスト結果が表示されます。

    詳細については、「アプリケーションのビルド」を参照してください。

参照

概念

自動テストの実行

テスト カテゴリの定義によるテストのグループ化

テスト リストの定義によるテストのグループ化

アプリケーションのパフォーマンスおよびストレスのテスト

その他の技術情報

バージョン管理の使用