Share via


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

Visual Studio Lab Management を使用すると、アプリケーションのビルドの品質を確認できます。 ビルド定義用の特定のラボ テンプレートを使用して、アプリケーションをビルドし、そのアプリケーションを仮想環境に配置した後、そのビルドの自動テストを実行できます。 このプロセスにより、仮想環境に対する既知の状態を使用して、問題のない環境でテストが実行されることを確認できます。 テストが失敗した場合、問題のない同じ環境を毎回使用できるため、正しく構成されていない、または破損した環境が原因で失敗する可能性が低くなります。

テスト計画からテスト スイートを選択することで、テストを実行します。 たとえば、ビルド スモーク テストというテスト スイートを作成するとします。 アプリケーションの基本機能をテストする自動テストをテスト ケースに関連付けた後、このテスト ケースをスイートに追加できます。 たとえば、このようなテストには、アプリケーションの基本操作をテストするコード化された UI テストがあります。

このビルド定義のビルド ワークフローが完了するたびに、テスト結果が保存されます。 このテスト結果を使用して、ビルドが安定していることを確認し、その情報を使用して、テスト チームが使用を開始できるビルドかどうかを決定できます。 これらのテストがビルドに渡される頻度を毎日確認することもできます。

次の手順に従って、アプリケーションをビルド、配置、およびテストするビルド ワークフローを作成し、問題を調査し、結果を表示または分析します。

  • 前提条件の確認

  • ビルド定義の作成およびビルドの開始

  • ビルド結果から環境への接続

  • ビルドのテスト結果の表示および分析

Web アプリケーションおよびその他の複雑なアプリケーションでは、Visual Studio 2010 を使用する場合、それらのアプリケーションを配置するための追加の手順が必要になることがあります。 たとえば、Visual Studio 2010 を使用して Web アプリケーションを IIS サーバーに配置する場合は、Microsoft Web ページで説明されている追加の手順を参照してください。

注意

ビルド定義用のラボ テンプレートを使用できるのは、トリガーが "手動"、"スケジュール"、または "ビルドのロール" の場合だけです。 "ビルドのロール" トリガーでは、テストが失敗しても次のビルドのロールでビルド システム全体が開始または停止されるため、このトリガーを使用することはお勧めしません。 また、"ゲート チェックイン" トリガーおよび "継続的インテグレーション" トリガーはサポートされていません。

必要条件

アプリケーションをビルド、配置、およびテストするビルド ワークフローを設定する前に、次の一覧に記載されたタスクが完了しているかどうかを確認します。

前提となるタスク

  1. Lab Management (ビルド コントローラーおよびテスト コントローラーを含む) を構成する (「Lab Management の初めての構成」を参照)。

  2. 環境の仮想マシンを作成し、エージェントをこれらの仮想マシンに追加する。 その後、仮想マシンをライブラリ共有に格納する (「方法: Lab Management 用の仮想マシンおよびテンプレートを作成して保存する」を参照)。

  3. SCVMM を使用して、仮想マシンまたはテンプレートをチーム プロジェクトにインポートする (「方法: 仮想マシンまたはテンプレートを SCVMM からインポートする」を参照)。

  4. これらの仮想マシンに必要なロールを割り当てて環境を作成し、この環境でテストを実行してワークフローを使用するように設定し、環境を開始する (「方法: 仮想マシンまたはテンプレートから環境を作成する」を参照)。

    注意

    各仮想マシンに割り当てられたロールに必要なソフトウェアをインストールおよび構成する必要があります。 仮想マシンのロールを選択しても、ソフトウェアはインストールされません。

  5. デスクトップと対話するスケジュールされたテスト (コード化された UI テストなど) の一部としてテストを実行するには、次の手順を実行する。

    1. テスト エージェントを、サービスではなく対話形式のプロセスとして実行するように設定します (「方法: テスト エージェントを設定して、デスクトップと対話するテストを実行する」を参照)。

      実行中のテスト エージェント プロセスが、通知領域にオンライン状態として表示されます。

    2. ワークフローのビルド定義が特定のスナップショットに戻った場合、テストを実行するときに仮想マシンをロックすることはできません。 ワークフローで使用するスナップショットを取得する前に、ホスト ベース接続またはコンソール セッションを使用してコンピューターに接続する必要があります。 詳細については、「方法: 仮想環境に接続する」を参照してください。

  6. (推奨) ワークフローでクリーンな状態として使用する環境のスナップショットを取得する (「方法: 環境の現在の状態を保存する」を参照)。 このスナップショットを取得する前に、次の手順を実行します。

    1. 環境内の仮想マシンに、オペレーティング システムの最新の更新プログラムがインストールされていることを確認します。

    2. ドメインに接続する環境内のすべての仮想マシンに対して gpupdate /force コマンドを実行して、ユーザー ポリシーへの変更がすべて反映されるようにします。 このコマンドを実行しないと、配置スクリプトが正しく機能しない、またはテストが正常に実行されない可能性があります。 アプリケーションのコード プロジェクトとテスト プロジェクトが、ソース コントロールにチェックインされていることを確認する (「バージョン管理へのファイルの追加」を参照)。

    3. 環境の状態が "実行中" であること、およびワークフロー機能とテスト機能の状態がどちらも "準備完了" であることを確認します。

      注意

      このスナップショットに含まれる仮想マシンがドメインに参加している場合、スナップショットの使用期間がドメイン コントローラーのパスワードの有効期間を超えると、仮想マシンがドメインに参加できなくなる可能性があります。 詳細については、「方法: 環境の現在の状態を保存する」を参照してください。

  7. アプリケーションをビルドするため、またはラボ テンプレートを使用してビルド ワークフローを作成するときに特定のビルドを選択するために使用できる、アプリケーションのビルド定義を作成する (「基本的なビルド定義の作成」を参照)。

  8. 自動テストをテスト ケースに関連付け、そのテスト ケースをチーム プロジェクトのテスト計画内のテスト スイートに追加する。 詳細については、次のヘルプ トピックを参照してください。

    1. 方法: テスト ケースに自動テストを関連付ける

    2. 方法: テスト ケースをテスト スイートに追加する

    3. 方法: テスト計画を作成する.

  9. 作成した仮想環境内のロールを使用する自動テストを実行するためのテスト設定を作成する (「テスト計画の一部としての自動テストのテスト設定の作成」を参照)。

ビルド定義用のラボ テンプレートを使用したビルド、配置、およびテストのワークフローの作成

ビルド、配置、およびテストの各ワークフローを作成するには、次の手順を実行する必要があります。

手順

操作

1

基本的なビルド定義の作成

2

ビルド、配置、およびテストのワークフローの別のビルド定義の作成

3

ワークフローの詳細の追加

4

ワークフローのビルド定義のキューへの配置

基本的なビルド定義の作成

最初に、配置するアプリケーションでコードのビルド定義を作成する必要があります。 アプリケーションを毎回ビルドする場合、この定義のテストを無効にします。これは、ラボ テンプレートを使用してワークフローからテストを実行するためです。

アプリケーションのビルド定義の作成

アプリケーションのビルド定義を作成するには

  1. [ビルド] メニューの [ビルド定義の新規作成] をクリックします。

  2. [全般] タブの [ビルド定義名] ボックスで、ビルド定義の名前を指定し、[説明] ボックスに適切な説明を追加します。

  3. 基本的なビルド定義の作成」のトピックの手順に従ってください。

ワークフローのビルド定義の作成

次に、ビルド、配置、およびテストのワークフロー用に別のビルド定義を作成する必要があります (次の図を参照)。

ワークフローのビルド定義の作成

ビルド プロセス テンプレートの詳細を表示するように選択して、ワークフローを作成するための LabDefaultTemplate ファイルを選択します (次の図を参照)。

ワークフローのビルド処理テンプレートの選択

ワークフローのビルド定義を作成するには

  1. [ビルド] メニューの [ビルド定義の新規作成] をクリックします。

  2. [全般] タブの [ビルド定義名] ボックスで、ビルド定義の名前を指定し、[説明] ボックスに適切な説明を追加します。

  3. [トリガー][ワークスペース][ビルドの既定値]、および [アイテム保持ポリシー] の各タブで設定を選択します (「基本的なビルド定義の作成」を参照)。

    注意

    このビルド ワークフローの [ビルドの既定値] タブでビルド ドロップ パスを入力する必要はありません。これは、ラボ テンプレートを使用する場合、ビルド出力を作成しないためです。 [ビルドは出力をコピーします] をオフにしてドロップ フォルダーを指定しないままにします。

  4. ビルド定義のラボ テンプレートを選択できるようにするには、[プロセス] タブの [ビルド プロセス テンプレート][詳細の表示] をクリックします。

    ドロップダウン リストが表示されます。

  5. テンプレートを選択します。 これは、ワークフローを定義するビルド プロセス ファイルです。

  6. ビルド定義のワークフローを作成してアプリケーションを仮想環境に配置するには、[ビルド プロセス ファイル] のドロップダウン リストから LabDefaultTemplate.xaml を選択します。

ワークフローの詳細の追加

これで、ワークフロー プロセスの詳細を追加できます (次の図を参照)。

ワークフローの詳細の追加

ラボ ワークフロー パラメーター ウィザードの手順に従って、必要な情報を指定します。

Lab ワークフロー パラメーター ウィザード

これで、このビルドをキューに入れ、ワークフローを実行し、ビルド ワークフローの進行状況を表示できます。

ワークフローの詳細を追加するには

  1. ワークフローのデータを入力するには、[ビルド プロセス パラメーター][ラボ プロセスの設定] をクリックし、省略記号 (...) をクリックします。

    ラボ ワークフロー パラメーター ウィザードが開き、ワークフローの情報を入力できます。

  2. [環境] タブで、アプリケーションを配置する仮想環境を選択します。

    注意

    この環境はアクティブである必要があります。 ライブラリに格納されている環境を使用する場合、その環境を配置してアクティブにする必要があります。 また、この環境はワークフロー専用に作成し、他のユーザーが使用しないようにすることをお勧めします。 これにより、現在使用中の環境がビルド ワークフローによって特定のスナップショットに戻される問題や、別のユーザーがテストを実行しているときに環境で配置スクリプトが実行される問題を防ぐことができます。

  3. (推奨) ラボ ビルド定義で環境を既知の状態に戻すには、[環境の特定のスナップショットに戻す] をオンにし、省略記号 (...) をクリックして特定のスナップショットを選択します。

    [環境スナップショットを選択する] ダイアログ ボックスが表示されます。 スナップショットを選択し、[OK] をクリックします。

    重要

    ビルドのたびに一貫して環境の既知の状態からテストを実行できるように、スナップショットに戻すことをお勧めします。 これにより、テストの失敗の原因を判断する際の不確実性が少なくなります。 たとえば、他のユーザーがソフトウェアを追加して現在の環境を変更した場合、そのソフトウェアがテストの失敗の原因になることがあります。

  4. [次へ] をクリックします。

  5. このワークフロー定義をキューに追加するたびに、このワークフロー定義を使用してアプリケーションをビルドする場合は、次の手順を実行します。

    1. [Team Foundation のビルドを使用する] をオンにし、前の手順で作成した定義を選択します。

    2. [新しいビルドをキューに入れる] をオンにします。

  6. このワークフロー定義が既存のビルドを使用し、アプリケーションをビルドし直さないようにする場合は、次の手順を実行します。

    1. [Team Foundation のビルドを使用する] をオンにし、前の手順で作成した定義を選択します。

    2. [既存のビルドを選択する] をオンにします。 ドロップダウン リストからビルドを選択します。 選択したビルド定義によって作成された既存のビルドが一覧に表示されます。

    3. [ビルドの構成の選択] でビルドの構成を選択します。

      注意

      ビルドの構成は、アプリケーションのビルド定義を作成したときに指定されます。 複数のビルドの構成がある場合、この一覧からビルド構成を選択できます。

  7. ビルドの場所を定義する場合は、[指定した場所のビルドを使用する] をオンにして、既存のビルドの UNC パスを指定します。

  8. [次へ] をクリックします。

  9. ワークフローの一部としてアプリケーションを配置するには、[配置] タブの [ビルドを配置する] をオンにします。

  10. アプリケーションの配置に必要なスクリプトまたはコマンドを追加するには、[追加] をクリックします。 スクリプトまたはコマンドを追加する仮想マシンを選択します。

    これで、環境内の各仮想マシンにスクリプトまたはコマンドを追加できるようになります。 たとえば、アプリケーションの一部として Windows クライアントを使用している場合、仮想マシンでテストを開始するために、コード化された UI テストが使用する場所に実行可能ファイルをコピーするスクリプトを使用できます。 また、Web サーバーがある場合は、アプリケーションの該当する部分を配置するためのスクリプトまたはコマンドを実行する必要があります。

    スクリプトで使用できる変数を次に示します。

    • $(BuildLocation): ビルドの場所。 共有の場所からビルドを使用するように指定した場合、この変数はそのパスを表します。 他のオプションの場合、これは、ビルド用に選択した構成、およびビルド定義内のビルドの格納場所に基づいた、ビルドの完全パスになります。 アプリケーションをワークフローの一部としてビルドする場合、これを使用して、そのビルドによって作成された最新のファイルにアクセスできます。

    • $(InternalComputerName_<VM Name>): 仮想環境の一部である仮想マシンのコンピューター名を取得するために使用されます。 仮想マシン名はわかっていても、コンピューター名がわからない場合があります。 配置スクリプトで Web サーバーを設定するためにコンピューター名が必要な場合、コンピューター名を引数としてスクリプトに渡すことができます。 たとえば、Web サーバーの仮想マシン名が VM1 でコンピューター名が MyWebServer の場合、スクリプトの引数として「$(InternalComputerName_VM1)」と入力すると、スクリプトに値 MyWebServer が渡されます。

    • $(ComputerName_<VM Name>): 仮想マシンの完全修飾ドメイン名。 この変数を使用すると、仮想環境の外部からでもこのコンピューターにアクセスできます。 これを引数として渡すことで、Web サーバーを設定することもできます。 たとえば、Web サーバーの仮想マシン名が VM1 の場合、スクリプトの引数として「$(ComputerName_VM1)」と入力して、仮想マシンの完全修飾ドメイン名を渡すことができます。

    環境でネットワークの分離を使用している場合、$(InternalComputerName_<VM Name>) の値はこの環境のどのコピーの仮想マシンのインスタンスでも同じになりますが、$(ComputerName_<VM Name>) はそれぞれで異なります。 たとえば、環境の各コピーで仮想マシンのコンピューター名が MyWebServer であっても、完全修飾ドメイン名は VM_<unique identifier>.domain_name.com の形式でそれぞれ一意になります。

    重要

    Windows プロンプトから実行されるコマンド (mkdir、バッチ ファイルの実行など) を追加する場合、cmd /c を使用してコマンドを開始する必要があります。 たとえば、cmd /c $(BuildLocation)\copyexe $(BuildLocation) というコマンドの場合、copyexe は、実行可能ファイルを仮想マシン上のローカル ディレクトリにコピーするバッチ ファイル copyexe.bat です。

    スクリプトまたはコマンドに特定の作業ディレクトリが必要な場合、[作業ディレクトリ] ボックスにディレクトリを入力できます。

    注意

    アプリケーションを配置した後、ファイルの場所に基づいてテストを実行できることを確認します。 たとえば、コード化された UI テストで Windows クライアント アプリケーションを起動する場合、実行可能ファイルがテストの実行対象となる適切なディレクトリにあるかどうかを確認します。

    また、アプリケーションで環境内のマシン名が間違っていないことを確認することもできます。 たとえば、Web サーバー ロールの仮想マシンが、データベース サーバーのロールが割り当てられた仮想マシンのデータベース サーバー インスタンスにアクセスできるように構成されているかどうかを確認できます。

  11. (推奨) アプリケーションを配置した後、テストを実行する前に環境のスナップショットを取得するには、次の操作を行う必要があります。

    1. [ビルドを配置した後で、環境のスナップショットを取得する] チェック ボックスをオンにします。

      重要

      このビルド定義を夜間に行うワークフロー プロセスの一部として実行する場合、環境内の各仮想マシンに短期間で多くのスナップショットが関連付けられます。 これにより、仮想マシンのパフォーマンスが低下します。 また、1 つの仮想環境に対して格納できるスナップショットの数は 50 個までに制限されています。 したがって、古いスナップショットを定期的に削除する必要があります。

    2. [スナップショット名を入力してください] ボックスに、このスナップショットの名前を入力します。

    注意

    このスナップショットを使用すると、問題を調査する場合に、環境に接続してテストを再実行できます。 チームの別のメンバーがこれを行うこともできます。 多くの場合、このスナップショットを使用して、アプリケーションがインストールされた状態のクリーン システム上でテストを再実行することにより、どのような問題が発生したのかを確認できるだけでなく、アプリケーションが正常にインストールされているかどうかも確認できます。

  12. [次へ] をクリックします。

  13. アプリケーションの配置後に自動テストを実行するには、次の操作を実行する必要があります。

    1. [これらのテストを環境で実行する] をオンにします。

    2. [テスト計画を選択する] で、使用するテスト計画を選択します。 テスト結果がこのテスト計画の一部として保存されます。

    3. [テスト スイートを選択する] で、省略記号 (...) をクリックし、[テスト スイートを選択する] ダイアログ ボックスで、実行するテスト スイートを選択します。

      注意

      既定では、ルート テスト スイートが選択されます。 このテスト スイートでテストを実行しない場合は、このフィールドをクリアする必要があります。

    4. [テストの構成を選択する] で、テストの実行に使用する構成を選択します。

      注意

      選択した各テスト スイート内の各テスト ケースの結果は、スイート内の各テスト ケースと選択したテスト構成を組み合わせた形で保存されます。 テスト構成の詳細については、「テスト構成の使用によるテスト マトリックスの定義」を参照してください。

    5. [自動テストの設定を選択する] で、このトピックのための一般的なプロセスの手順 9. で仮想環境内のロールに合わせて前に作成したテスト設定を選択します。 テストの設定の詳細については、「テスト計画の一部としての自動テストのテスト設定の作成」を参照してください。

  14. [完了] をクリックします。

  15. [保存] をクリックして、ビルド定義を保存します。

    作成されたビルド定義は、チーム エクスプローラーの [ビルド] フォルダーに表示されます。

ワークフローのビルド定義のキューへの配置

これで、このビルドをキューに入れ、ワークフローを実行し、ビルド ワークフローの進行状況を表示できます。

ワークフローのビルド定義をキューに配置するには

  1. アプリケーションをビルド、配置、およびテストするためのビルド定義を開始するには、"ビルド" フォルダーのラボ ビルド定義を右クリックして、[新しいビルドをキューに配置] をクリックします。

    [ビルドをキューに挿入] ダイアログ ボックスが表示されます。

  2. ビルド ワークフローの情報を確認し、[キューに登録] をクリックします。

    ビルド エクスプローラー ビューが表示されます。

  3. ビルドの進行状況に合わせて [ビルドの概要] ビューを表示するには、ビルドをダブルクリックします。

    ビルドの進行状況として状態が表示されます。

  4. (省略可能) 環境をビルドの進行状況として表示する場合は、Microsoft テスト マネージャー を開き、[ラボ センター] を探し、[ラボ] をクリックし、一覧の環境をクリックします。 環境のイメージ、およびこのイメージの上に表示される環境の詳細情報に、次のような反映されたビルドの進行状況を表示できます。

    • スナップショットの復元 (該当するオプションをオンにしている場合)

    • 配置後スナップショットの取得 (該当するオプションをオンにしている場合)

    • 機能の状態 (機能が使用できる状態になると緑色の矢印が表示されます)

    • 実行中のテスト (テストがユーザー インターフェイスと対話する場合)

    ビルド ワークフローが正常に完了すると、緑色のチェック マークが表示されます。 エラーが発生した場合は、[ログの表示] をクリックして詳細を確認できます。

ビルド結果から環境への接続

ビルド ワークフロー プロセス中にテストが失敗した場合、問題を調査するために環境に接続します。 ビルド ワークフローで該当するオプションをオンにしている場合は、配置後のスナップショットに接続できるほか、現在の状態の環境にも接続できます (次の図を参照)。

ビルド結果から環境への接続

ビルド結果から環境に接続するには

  1. チーム エクスプローラーの "ビルド" フォルダーで、ビルド ワークフロー定義を右クリックして、[ビルドの表示] をポイントします。

    ビルド エクスプローラー ビューが表示されます。

  2. 完了したビルドを表示するには、[完了] タブをクリックします。

  3. 表示するビルドをダブルクリックします。

    [ビルドの概要] ビューが表示されます。

  4. [環境のスナップショット <ビルド名および番号> の表示] の横にあるリンクをクリックします。

    [環境への接続] ダイアログ ボックスが表示されます。

  5. アプリケーションの配置後に取得されたスナップショットに接続する場合は、[この環境のスナップショットに接続] をクリックします。

    注意

    このスナップショットに接続することで、この配置後スナップショットの後に行われた変更が破棄されます。 変更を保存する場合は、配置後スナップショットに復元する前に、現在の状態の環境に接続してスナップショットを取得します。 スナップショットを取得する方法の詳細については、「方法: 環境の現在の状態を保存する」を参照してください。

  6. ワークフローからテストを実行した後に、現在の状態で環境に接続する場合は、[現在の状態で環境に接続] をクリックします。

  7. [接続] をクリックします。

    Microsoft 環境ビューアーが表示され、環境に接続されます。 これで、問題を調査できます。

ビルド ワークフローのテスト結果の表示および分析

ビルド ワークフローの概要にテスト結果の概要を表示できます。 一方、Microsoft テスト マネージャーを使用してテスト結果を表示および分析することもできます。これは、テスト結果がテスト計画の一部として保存されるためです。これについて以下の図に示します。 テスト計画のテスト結果に関するレポートを作成する方法の詳細については、「テスト計画のテスト進行状況のレポート」を参照してください。

ビルド ワークフローからのテスト結果の表示

Microsoft Test Manager からテスト結果を表示して分析するには

  1. Microsoft テスト マネージャー を開きます。

    注意

    Microsoft テスト マネージャーのウィンドウを表示するには、[スタート] ボタンをクリックし、[すべてのプログラム] をクリックします。 [Microsoft Visual Studio 2010] をポイントし、[Microsoft テスト マネージャー] をクリックします。

  2. テスト結果を表示するために、センター グループ スイッチャーの下向きの矢印をクリックし、[テスト センター] をクリックします。

  3. センター グループ メニュー バーで、[テスト] をクリックし、ビルド ワークフローで使用したテスト スイート階層からテスト スイートの 1 つを選択します。

    ビルド ワークフローで選択した構成のテストの結果を表示できます。

  4. 完了したテストの実行を分析する場合は、[テストの実行を分析] をクリックします。

    [テストの実行を分析] アクティビティが表示されます。 これには、このテスト計画に関するすべてのテストの実行が表示されます。

    注意

    実行のタイトルには、ビルド定義の名前が反映されます。 実行を識別できるように、ビルドの概要ページに実行 ID が表示されます。

  5. テストの実行をダブルクリックして開き、詳細を表示します。 テストの実行の詳細が表示されます。

  6. (省略可能) テストの実行のタイトルをわかりやすい名前に変更する場合は、[タイトル] に新しい名前を入力します。

  7. (省略可能) テストが失敗した場合は、失敗の理由を更新できます。 [解決方法] をクリックし、失敗の理由を一覧から選択します。

  8. (省略可能) テスト結果にコメントを追加する場合は、[コメント] アイコンをクリックします。 コメントを入力し、[コメントの保存] をクリックします。

  9. (省略可能) 個別のテストの詳細を表示する場合は、そのテストをダブルクリックします。

    テスト結果が表示されます。 これには、テストの実行の詳細、このテスト結果で収集されたデータの添付ファイル、およびそのテストのテスト結果履歴が表示されます。 このビューを閉じると、テストの実行に戻ることができます。

    注意

    バグがあることがわかった場合は、このビューからバグを作成できます。

  10. ツール バーの [上書き保存] をクリックして、このテストの実行に対する変更内容を保存します。

参照

その他の技術情報

仮想環境を使用したテスト

仮想環境でのテストの実行に関するトラブルシューティング