Share via


方法: アプリケーションを仮想環境に配置する

Visual Studio Lab Management を使用すると、仮想環境にアプリケーションを自動的に配置できます。 ビルド定義用の特定のラボ テンプレートを使用して、アプリケーションをビルドした後、そのアプリケーションを仮想環境に配置できます。 このプロセスにより、仮想環境に対する既知の状態を使用して、問題のない環境でアプリケーションの最新ビルドをセットアップできます。 これにより、ユーザーがこの環境のアプリケーションにアクセスできるようになるほか、テスト担当者が Microsoft テスト マネージャー を使用して手動テストまたは自動テストを実行できるようになります。

注意

アプリケーションのビルドおよび配置後に自動テストを実行する場合は、「方法: アプリケーションをビルドして配置した後にスケジュールされているテストを構成および実行する」に記載された手順を実行してください。

次の手順に従って、アプリケーションをビルドおよび配置するためのビルド ワークフローを作成します。

  • 前提条件の確認

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

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

    注意

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

前提条件

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

前提となるタスク

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

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

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

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

    注意

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

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

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

    2. ドメインに接続する環境内のすべての仮想マシンに対して gpupdate /force コマンドを実行して、ユーザー ポリシーへの変更がすべて反映されるようにします。 このコマンドを実行しないと、配置スクリプトが正しく機能しない、またはテストが正常に実行されない可能性があります。

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

      注意

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

  6. アプリケーションのコード プロジェクトとテスト プロジェクトが、ソースのバージョン コントロールにチェックインされていることを確認する (「バージョン管理へのファイルの追加」を参照)。

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

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

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

手順

操作

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. [完了] をクリックします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ビルド ワークフロー プロセスの完了後に、環境に接続してアプリケーションをテストできます。 ビルド ワークフローで該当するオプションをオンにしている場合は、配置後のスナップショットに接続できるほか、現在の状態の環境にも接続できます (次の図を参照)。

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

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

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

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

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

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

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

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

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

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

    注意

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

  6. 現在の状態で環境に接続する場合は、[現在の状態で環境に接続] をクリックします。

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

    Microsoft 環境ビューアーが表示され、環境に接続されます。 これで、配置したアプリケーションを使用できます。

参照

その他の技術情報

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

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