Team Foundation ビルドを使用すると、データベース単体テストをビルド検証テスト (BVT) の一部として実行できます。 データベースを配置し、テスト データを生成し、選択したテストを実行するために、データベース単体テストを構成できます。 Team Foundation ビルドを初めて使用する場合は、このトピックの手順に従う前に、次の情報を確認してください。
これらの手順を使用する前に、最初に次のタスクを実行することによって、作業環境を構成する必要があります。
Team Foundation ビルド および Team Foundation バージョン管理 をインストールします。 多くの場合、Team Foundation ビルドと Team Foundation バージョン管理を異なるコンピューターにインストールする必要があります。
Visual Studio Team Foundation Server のインスタンスに接続します。 Team Foundation Server への接続方法の詳細については、「How to: Connect to a Team Project in Team Foundation Server」を参照してください。
作業環境を構成したら、Visual Studio Premium または Visual Studio Ultimate で次の手順を実行する必要があります。
データベース プロジェクトを作成します。
データベース プロジェクトのスキーマとオブジェクトをインポートまたは作成します。
ビルドおよび配置のためにデータベース プロジェクトのプロパティを構成します。
1 つ以上のデータベース単体テストを作成します。
データベース プロジェクトおよびデータベース単体テスト プロジェクトを含むソリューションをバージョン管理に追加し、すべてのファイルをチェックインします。
このトピックの各手順では、自動化されたテスト実行の一部としてデータベース単体テストを実行するためのビルド定義を作成する方法について説明します。
テスト設定を構成して、x64 ビルド エージェントでデータベース単体テストを実行する
テストをテスト カテゴリに割り当てる (省略可能)
テスト プロジェクトを変更する
ソリューションをチェックインする
ビルド定義の作成
新しいビルド定義を実行する
ビルド コンピューター上でデータベースの単体テストを実行する
ビルド コンピューター上でデータベースの単体テストを実行するとき、単体テストでデータベース プロジェクト ファイル (.dbproj) またはデータ生成計画 (.dgen) が見つからないことがあります。 この問題は、app.config ファイルが相対パスを使用してこれらのファイルを参照しているために発生します。 さらに、データベース単体テストの実行に使用する SQL Server のインスタンスが見つからないと、これらのテストに失敗することがあります。 この問題は、app.config ファイルに格納されている接続文字列が、ビルド コンピューターからの有効な文字列でない場合に発生します。
これらの問題を解決するには、app.config で override セクションを指定して、app.config を現在の Team Foundation ビルド環境に固有の構成ファイルでオーバーライドする必要があります。 詳細については、このトピックの「テスト プロジェクトを変更する」を参照してください。
テスト設定を構成して、x64 ビルド エージェントでデータベース単体テストを実行する
x64 ビルド エージェントでデータベース単体テストを実行する前に、テスト設定を構成して [ホスト プロセスのプラットフォーム] を変更する必要があります。
[ホスト プロセスのプラットフォーム] を指定するには
設定を構成するテスト プロジェクトを含むソリューションを開きます。
ソリューション エクスプローラーの [ソリューション項目] フォルダーにある、Local.testsettings ファイルをダブルクリックします。
[テストの設定] ダイアログ ボックスが表示されます。
リストの [ホスト] をクリックします。
詳細ウィンドウの [ホスト プロセスのプラットフォーム] で、[MSIL] をクリックし、x64 ビルド エージェントで実行するテストを構成します。
[適用] をクリックします。
テストをテスト カテゴリに割り当てる (省略可能)
単体テストを実行するためのビルド定義を作成する際には、1 つ以上のカテゴリを指定するのが一般的です。 ビルドが実行されると、指定したカテゴリのすべてのテストが実行されます。
テストをテスト カテゴリに割り当てるには
[テスト ビュー] ウィンドウを開きます。
テストを選択します。
プロパティ ペインで、[テスト カテゴリ] をクリックし、右端の列にある省略記号 (...) をクリックします。
[テスト カテゴリ] ウィンドウの [新しいカテゴリの追加] ボックスに、新しいテスト カテゴリの名前を入力します。
[追加] をクリックしてから [OK] をクリックします。
新しいテスト カテゴリがテストに割り当てられ、プロパティを通じて他のテストに使用できるようになります。
テスト プロジェクトを変更する
既定では、単体テスト プロジェクトのビルド時に、Team Foundation ビルドによってプロジェクトの app.config ファイルから構成ファイルが作成されます。 データ生成計画およびデータベース プロジェクトへのパスは、app.config ファイル内に相対パスとして保存されます。 Visual Studio 内の有効な相対パスは無効になります。これは、Team Foundation ビルドにより、ビルドされたファイルが、単体テストを実行する場所への相対的な場所とは異なる場所に格納されるためです。 さらに、app.config ファイルには、テスト対象のデータベースを指定する接続文字列が含まれます。 単体テストで、プロジェクト作成時に使用したものとは異なるデータベースに接続する必要がある場合は、Team Foundation ビルド用に別の app.config ファイルが必要になります。 次の手順に示した変更を行うことにより、Team Foundation ビルドが別の構成を使用するように、テスト プロジェクトとビルド サーバーを設定することができます。
重要
この手順は、テスト プロジェクトごと (.vbproj または .vsproj) に実行する必要があります。
Team Foundation ビルドの app.config ファイルを指定するには
ソリューション エクスプローラーで、app.config ファイルを右クリックし、[コピー] をクリックします。
テスト プロジェクトを右クリックし、[貼り付け] をクリックします。
"app.config のコピー" というファイルを右クリックし、[名前の変更] をクリックします。
「BuildComputer.dbunitttest.config」と入力し、Enter キーを押します。BuildComputer は、ビルド エージェントを実行するコンピューターの名前です。
BuildComputer.dbunitttesting.config をダブルクリックします。
構成ファイルがエディターで開きます。
.dbproj ファイルと .dgen ファイルの相対パスを変更して、Sources フォルダーのフォルダー レベルと、ソリューションと同名のサブフォルダーを追加します。 たとえば、最初に次のエントリが構成ファイルに含まれていたとします。
<DatabaseDeployment DatabaseProjectFileName="..\..\..\SalesDB\SalesDB.DBProj" Configuration="Debug" />
この場合は、ファイルを次のように更新します。
<DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\SalesDB\SalesDB.DBProj" Configuration="Debug" />
データ生成ファイルに対しても同じ手順を実行します (データ生成ファイルが指定されている場合)。
完了すると、BuildComputer.dbunitttest.config ファイルが次のようになります。
<DatabaseUnitTesting> <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\UnitTest\UnitTest\UnitTest.dbproj" Configuration="Debug" /> <DataGeneration ClearDatabase="true" /> <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False" CommandTimeout="30" /> <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False" CommandTimeout="30" /> </DatabaseUnitTesting>
ExecutionContext と PrivilegedContext の ConnectionString 属性を更新して、配置先データベースへの接続を指定します。
[ファイル] メニューの [すべてを保存] をクリックします。
ソリューション エクスプローラーで、app.config をダブルクリックします。
エディターで、<DatabaseUnitTesting> ノードを次のように更新します。
<DatabaseUnitTesting AllowConfigurationOverride="true">
これで、作成した新しい構成ファイルを Team Foundation ビルドで使用できるようになります。
[ファイル] メニューの [すべてを保存] をクリックします。
次に、Local.testsettings を更新して、カスタマイズした構成ファイルを含める必要があります。
カスタマイズした構成ファイルを配置するように Local.testsettings をカスタマイズするには
ソリューション エクスプローラーで、Local.testsettings をダブルクリックします。
[テストの設定] ダイアログ ボックスが表示されます。
カテゴリの一覧で、[配置] をクリックします。
[配置を有効にする] チェック ボックスをオンにします。
[ファイルの追加] をクリックします。
[配置ファイルの追加] ダイアログ ボックスで、作成した BuildComputer.dbunitttest.config ファイルを指定します。
[適用] をクリックします。
[閉じる] をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
次に、ソリューションをバージョン管理にチェックインします。
ソリューションをチェックインする
この操作では、ソリューションのすべてのファイルをチェックインします。 これらのファイルには、テスト カテゴリの関連付けおよびテストを含んでいるソリューションのテスト メタデータ ファイルが含まれます。 テストの内容を追加、削除、再構成、または変更すると、テスト メタデータ ファイルが自動的に更新されて、それらの変更が反映されます。
注意
この手順では、Team Foundation バージョン管理を使用している場合の手順について説明します。 異なるバージョン管理ソフトウェアを使用している場合は、そのソフトウェアに該当する手順に従う必要があります。
ソリューションをチェックインするには
Team Foundation Server を実行しているコンピューターに接続します。
詳細については、「ソース管理エクスプローラーの使用」を参照してください。
ソリューションがソース管理に含まれていない場合は、ソース管理に追加します。
詳細については、「バージョン管理へのファイルの追加」を参照してください。
[ビュー] をクリックし、[保留中のチェックイン] をクリックします。
ソリューションのすべてのファイルをチェックインします。
詳細については、「保留中の変更のチェックイン」を参照してください。
注意
自動テストの作成方法および管理方法に関して、チームに固有のプロセスを定めることができます。 たとえば、プロセスによって、実行するテストと共にそのコードをチェックインする前に、ビルドをローカルで検証することを要求できます。
ソリューション エクスプローラーの各ファイルの隣に錠のアイコンが表示され、ファイルがチェックインされたことが示されます。 詳細については、「バージョン管理ファイルとフォルダーのプロパティの表示」を参照してください。
テストを Team Foundation ビルド に使用できるようになりました。 これで、実行するテストを含むビルド定義を作成できます。
ビルド定義を作成する
ビルド定義を作成するには
チーム エクスプローラーでチーム プロジェクトをクリックし、[ビルド] ノードを右クリックし、[ビルド定義の新規作成] をクリックします。
[ビルド定義の新規作成] ウィンドウが開きます。
[ビルド定義名] で、ビルド定義に使用する名前を入力します。
ナビゲーション バーで [ビルドの既定値] をクリックします。
[ビルド出力を次の格納フォルダーにコピーします (\\server\share などの UNC パス)] に、ビルド出力を格納するフォルダーを指定します。
ローカル コンピューターまたはビルド処理にアクセス許可がある任意のネットワークの場所の共有フォルダーを指定します。
ナビゲーション バーで [プロセス] をクリックします。
[必須] グループの [ビルドする項目] で、参照 ([...]) ボタンをクリックします。
[ビルド プロジェクト リスト エディター] ダイアログ ボックスの [追加] をクリックします。
このチュートリアルでバージョン管理に追加したソリューション ファイル (.sln) を指定し、[OK] をクリックします。
[ビルドするプロジェクトまたはソリューション ファイル] の一覧にソリューションが表示されます。
[OK] をクリックします。
[基本] グループの [自動テスト] で、実行するテストを指定します。 既定では、ソリューションの *test*.dll という名前のファイルに含まれているテストが実行されます。
[ファイル] メニューの [ProjectName の保存] をクリックします。
ビルド定義が作成されます。 次に、テスト プロジェクトを変更します。
新しいビルド定義を実行する
新しいビルド タイプを実行するには
チーム エクスプローラーで、チーム プロジェクトのノードを展開し、[ビルド] ノードを展開し、実行するビルド定義を右クリックし、[新しいビルドをキューに配置] をクリックします。
[キュー ビルド {チーム プロジェクト名}] ダイアログ ボックスに、すべての既存のビルドの種類の一覧が表示されます。
必要に応じて、[ビルド定義] で新しいビルド定義をクリックします。
[ビルド定義]、[ビルド エージェント]、および [このビルドの格納フォルダー] の各フィールドの値がすべて適切であることを確認し、[キュー] をクリックします。
ビルド エクスプローラーの [キューに挿入済み] タブが表示されます。 詳細については、「完了したビルドの管理と表示」を参照してください。