方法 : Team Foundation ビルドからデータベース単体テストを実行する

Team Foundation ビルドを使用すると、データベース単体テストをビルド検証テスト (BVT) の一部として実行できます。 データベースを配置し、テスト データを生成し、選択したテストを実行するために、データベース単体テストを構成できます。 Team Foundation ビルドを初めて使用する場合は、このトピックの手順に従う前に、次の情報を確認してください。

これらの手順を使用する前に、最初に次のタスクを実行することによって、作業環境を構成する必要があります。

  • Team Foundation ビルドと Team Foundation バージョン管理を、個別の製品または Visual Studio Team System の一部としてインストールします。 多くの場合は、Team Foundation ビルドと Team Foundation バージョン管理を異なるコンピュータにインストールする必要があります。

  • クライアント コンピュータにチーム エクスプローラをインストールします。

  • Team Foundation Server を実行しているコンピュータに Visual Studio ユーザー セッションを接続します。 Team Foundation Server への接続方法の詳細については、「方法 : Team Foundation Server に接続する」を参照してください。

作業環境を構成したら、Visual Studio Team System Database Edition で次の手順を実行する必要があります。

  1. データベース プロジェクトを作成します。

  2. データベース プロジェクトのスキーマとオブジェクトをインポートまたは作成します。

  3. ビルドおよび配置のためにデータベース プロジェクトのプロパティを構成します。

  4. 1 つ以上のデータベース単体テストを作成します。

  5. データベース プロジェクトおよびデータベース単体テスト プロジェクトを含むソリューションをバージョン管理に追加し、すべてのファイルをチェックインします。

このトピックの各手順では、自動化されたテスト実行の一部としてデータベース単体テストを実行するためのビルド定義を作成する方法について説明します。

  1. 実行するデータベース単体テストのテスト リストを作成します。

  2. テスト リストをチェックインします。

  3. ビルドの一部としてテスト リストを実行することを指定して、ビルド定義を作成します。

  4. app.config ファイルが Team Foundation ビルドの正しい場所にコピーされるようにビルド定義を変更します。

  5. 更新したビルド定義をチェックインします。

  6. 新しいビルド定義を実行します。

ビルド コンピュータ上でデータベースの単体テストを実行する

ビルド コンピュータ上でデータベースの単体テストを実行するとき、単体テストでデータベース プロジェクト ファイル (.dbproj) またはデータ生成計画 (.dgen) が見つからないことがあります。 この問題は、app.config ファイルが相対パスを使用してこれらのファイルを参照しているために発生します。 さらに、データベース単体テストの実行に使用する SQL Server のインスタンスが見つからないと、これらのテストに失敗することがあります。 この問題は、app.config ファイルに格納されている接続文字列が、ビルド コンピュータからの有効な文字列でない場合に発生します。

この問題を解決するには、Team Foundation ビルドで使用する app.config ファイルを作成する必要があります。 この例では、ファイル名は app.TeamBuild.config です。 このファイルには、ビルド コンピュータで Team Foundation ビルドを実行するための正しいパスと接続文字列を指定します。 ビルド後のターゲットを使用して、このファイルを AssemblyName.config にコピーできます。 ファイルをコピーすると、開発者がローカルの開発用コンピュータで単体テストを実行するときに使用した値を含む .config ファイルが上書きされます。

Aa833210.alert_note(ja-jp,VS.90).gifメモ :

データベース プロジェクトをビルドする前に、Team Foundation ビルドを実行するコンピュータのサービス アカウントに対して、デザイン時検証データベースのインスタンスを構成する必要があります。 このインスタンスは、Visual Studio をビルド コンピュータ上でサービス アカウントとして実行することで構成できます。 または、次のコマンド ラインを使用して、必要なレジストリ エントリを作成することもできます (各プレースホルダは、構成に使用する名前で置き換えてください)。

Runas /user:[DOMAIN\BuildServiceUserName] "REG ADD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\DBPro\DialogPage\Microsoft.VisualStudio.TeamSystem.Data.DBProject.Settings.DataConnectionOptionsSettings /v SqlServerName /d [LocalInstanceName]"

テスト リストを作成する

データベース単体テストのテスト リストを作成するには

  1. [テスト リスト エディタ] ウィンドウの [グループ化] ボックスの一覧で、[テスト リストの完全名] をクリックしてテスト リスト ペインを表示します。

  2. [テストの一覧] を右クリックし、[新しいテスト リスト] をクリックします。

    [新しいテスト リストの作成] ダイアログ ボックスが表示されます。

  3. データベース単体テストを含むテスト リストの名前を入力します。 (たとえば、「Database Unit Tests」と入力します。)

  4. (省略可能) データベース単体テスト リストの説明を入力し、新しいテスト リストを配置する場所をテスト リスト階層内で指定します。

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

    テスト リストが作成され、テスト リストの階層ペインに表示されます。

  6. [読み込まれたすべてのテスト] をクリックして、ソリューション内のすべてのテストを表示します。

  7. データベース単体テストとして実行するテストを、作成したテスト リストにドラッグします。

    Aa833210.alert_note(ja-jp,VS.90).gifメモ :

    一度に複数のテストをドラッグするには、CTRL キーを押しながら各テストをクリックします。 連続する複数のテストのブロックをドラッグするには、ブロックの最初のテストをクリックし、SHIFT キーを押しながらブロックの最後のテストをクリックします。 この目的のためにチェック ボックスを使用しないでください。

  8. (省略可能) テスト リストの内容を検証するには、テスト リストの階層ペインでクリックします。

    作成したテスト リストは、ソリューション内のすべてのテスト リストと共に、ソリューションのテスト メタデータ ファイルに存在します。 テスト メタデータ ファイルには、拡張子 .vsmdi が付いています。 詳細については、「テスト リストの使用」を参照してください。

テスト リストをチェックインする

この操作では、ソリューションのすべてのファイルをチェックインします。 これらのファイルには、テスト リストおよびテストを含んでいるソリューションのテスト メタデータ ファイルが含まれます。 テスト リストの内容を追加、削除、再構成、または変更すると、テスト メタデータ ファイルが自動的に更新されて、それらの変更が反映されます。

Aa833210.alert_note(ja-jp,VS.90).gifメモ :

この手順では、Team Foundation バージョン管理を使用している場合の手順について説明します。 異なるバージョン管理ソフトウェアを使用している場合は、そのソフトウェアに該当する手順に従う必要があります。

テスト リストをチェックインするには

  1. Visual Studio Team System Team Foundation Server を実行しているコンピュータに接続します。 詳細については、「方法 : Team Foundation Server に接続する」を参照してください。

  2. ソリューションがソース管理に含まれていない場合は、ソース管理に追加します。 詳細については、「方法 : プロジェクトまたはソリューションをバージョン管理に追加する」を参照してください。

  3. [表示] をクリックし、[保留中のチェックイン] をクリックして [保留中のチェックイン] ウィンドウを表示します。

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

    Aa833210.alert_note(ja-jp,VS.90).gifメモ :

    Visual Studio Team System を使用している場合は、自動化されたテストの作成方法および管理方法に関して、チームに固有のプロセスを定めることができます。 たとえば、プロセスによって、実行するテストと共にそのコードをチェックインする前に、ビルドをローカルで検証することを要求できます。

    チェックイン操作が完了すると、ソリューション エクスプローラの各ファイルの隣に錠のアイコンが表示され、ファイルがチェックインされたことが示されます。詳細については、「方法 : ソリューション エクスプローラでバージョン管理項目のステータスを識別する」を参照してください。

    チェックインされたテストは、Visual Studio Team System の Team Foundation ビルド機能で使用できます。 これで、実行するテストを含むビルド定義を作成できます。

ビルド定義の作成

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

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

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

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

  3. [ビルド定義] ダイアログ ボックスの各セクションに入力します。 詳細については、「方法 : ビルド定義を作成する」を参照してください。

    Aa833210.alert_caution(ja-jp,VS.90).gif重要 :

    Team Foundation ビルドは MSBuild プロジェクト ファイルを使用します。 MSBuild プロジェクトのオプションでは、[テストの実行] チェック ボックスをオンにし、「テスト リストを作成する」で作成したテスト リストが含まれているテスト メタデータ ファイルを指定する必要があります。 最後に、実行するテストが含まれているテスト リストを指定する必要があります。

  4. ウィザードで情報の指定が終了したら、[完了] をクリックします。

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

テスト プロジェクトの変更

既定では、単体テスト プロジェクトのビルド時に、Team Foundation ビルドによってプロジェクトの app.config ファイルから構成ファイルが作成されます。 データ生成計画およびデータベース プロジェクトへのパスは、app.config ファイル内に相対パスとして保存されます。 Visual Studio 内の有効な相対パスは無効になります。これは、Team Foundation ビルドにより、ビルドされたファイルが、単体テストを実行する場所への相対的な場所とは異なる場所に格納されるためです。 さらに、app.config ファイルには、テスト対象のデータベースを指定する接続文字列が含まれます。 単体テストで、プロジェクト作成時に使用したものとは異なるデータベースに接続する必要がある場合は、Team Foundation ビルド用に別の app.config ファイルが必要になります。 次の手順に示した変更を行うことにより、Team Foundation ビルドが別の構成を使用するように、テスト プロジェクトとビルド サーバーを設定することができます。

Aa833210.alert_caution(ja-jp,VS.90).gif重要 :

この手順は、テスト プロジェクトごと (.vbproj または .vsproj) に実行する必要があります。

Team Foundation ビルドに別の app.config ファイルを使用するには

  1. ソリューション エクスプローラで、変更するテスト プロジェクト ファイル (.vbproj または .csproj) を右クリックし、[編集用にチェックアウト] をクリックします。

    [チェックアウト] ダイアログ ボックスが表示されます。

  2. [チェックアウト] をクリックします。

  3. [ファイル] メニューの [ソリューションを閉じる] をクリックします。

    プロジェクト ファイルを含むソリューションが開いていると、そのプロジェクト ファイルを変更できないため、ソリューションを閉じる必要があります。

    Aa833210.alert_note(ja-jp,VS.90).gifメモ :

    プロジェクトをアンロードし、変更後に再読み込みすることもできます。

  4. [ファイル] メニューの [開く] をポイントし、[ファイル] をクリックします。

  5. 手順 1. のテスト プロジェクト ファイルに移動し、ファイルをダブルクリックしてエディタで開きます。

  6. ファイルの最後までスクロールし、"<Import Project=" で始まる要素 (Visual Basic または Visual C# .Targets ファイルをインポートする要素) の後ろに次のコードを追加します。

    <Import Condition="'$(TeamBuildConstants)' != ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\TeamData\Microsoft.VisualStudio.TeamSystem.Data.TeamBuild.targets"/>
    <Target Name="AfterBuild" DependsOnTargets="$(AfterBuildTeamBuildTargets)">
    </Target>
    
  7. [ファイル] メニューの [FileName の保存] をクリックします。

  8. Team Foundation ビルドを実行するコンピュータで、%ProgramFiles%\MSBuild\Microsoft\VisualStudio\v9.0\TeamData フォルダに移動します。

  9. このフォルダで、Microsoft.VisualStudio.TeamSystem.Data.TeamBuild.Targets という名前のファイルを作成し、次の内容を追加します。

    <?xml version="1.0" encoding="utf-8"?>
    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup> 
    <AfterBuildTeamBuildTargets>RenameTeamBuildConfig</AfterBuildTeamBuildTargets>
    </PropertyGroup>
    <ItemGroup>
    <__TeamBuildConfig Include="$(OutDir)$(TargetFileName).config"/>
    </ItemGroup>
    
    <Target Name="RenameTeamBuildConfig">
    
    <CreateItem Include="app.TeamBuild.config">
    <Output ItemName="TeamBuildAppConfig" TaskParameter="Include" />
    </CreateItem>
    
    <Copy SourceFiles="@(TeamBuildAppConfig)" DestinationFiles="@(__TeamBuildConfig)" />
    </Target>
    
    </Project> 
    
    Aa833210.alert_note(ja-jp,VS.90).gifメモ :

    構成ファイルに app.TeamBuild.config 以外の名前を付ける場合は、XML 内で参照されている名前を置き換えてください。

  10. テスト プロジェクトの app.config ファイルを、app.teambuild.config という名前のファイルにコピーします。

  11. app.teambuild.config ファイルの相対パスと接続文字列の設定をカスタマイズし、Team Foundation ビルドでデータベース単体テストを実行するときに使用する値に設定します。

更新したテスト プロジェクトへのチェックイン

更新したビルド定義をチェックインするには

  • 「テスト リストをチェックインするには」で実行した手順を繰り返し、テスト プロジェクト ファイル (.vbproj、.csproj) への変更をチェックインします。

新しいビルド タイプを実行する

新しいビルド タイプを実行するには

  1. [ビルド] メニューの [ビルド {TeamProjectName} をキューに配置] をクリックします。

    [{TeamProjectName} のビルド] ダイアログ ボックスに、すべての既存のビルド タイプの一覧が表示されます。

  2. 必要に応じて、[ビルド定義] で新しいビルド定義をクリックします。

  3. [ビルド定義]、[ビルド エージェント]、および [このビルドの格納フォルダ] の各フィールドの値がすべて適切であることを確認し、[キュー] をクリックします。

    ビルド エクスプローラの [キューに挿入済み] タブが表示されます。 詳細については、「Team Foundation ビルド エクスプローラの理解」を参照してください。

参照

処理手順

方法 : テストをテスト リストに整理する

方法 : ビルド定義を作成する

方法 : Team Foundation ビルドを使用して変更を配置する

方法 : スケジュールされたビルドを構成する (コマンド ライン)

方法 : ビルド定義をキューに配置する/ビルド定義を開始する

概念

Database Edition の用語の概要