方法 : テストの配置を構成する
Visual Studio Ultimate のテスト エンジンでは、テストを作成または生成したフォルダーまたは別の配置フォルダーでテストを実行できます。 テストを別のフォルダーに配置しても、テストを実行しながら、引き続きソリューションの構築を行うことができます。
テストが実行される前に、次のファイルとフォルダーが配置フォルダーにコピーされます。
テスト アセンブリ ファイル
すべての依存アセンブリ
XML ファイルや構成ファイルなど、テストで使用される指定済みのファイル。 配置を構成するには、コピーされる追加の配置項目を指定するか、配置フォルダーを変更します。
配置フォルダーは、ローカルまたはリモートのどちらでもかまいません。 リモート テスト配置は、テスト エージェント コントローラーおよびテスト エージェントを使用している場合に行われます。 リモート配置の詳細については、「方法: テスト コントローラーおよびテスト エージェントを使用してテストを実行する」を参照してください。
ソリューションのテストを実行すると、Visual Studio によって、ソリューションの階層構造内にある TestResults という名前のフォルダーに配置ファイルが作成されます。 TestResults フォルダーが存在しない場合は、Visual Studio によって作成されます。
注意
Visual Studio IDE を使用している場合、このフォルダーはソリューション フォルダーの直下に作成されます。Visual Studio IDE を使用していない場合は、現在のフォルダーの下に TestResults フォルダーが作成されます。
テストの実行を開始するたびに、そのテストの実行で排他的に使用されるフォルダーのセットが Visual Studio によって TestResults フォルダーの下に作成されます。次の図に示す例では、TestResults の下の 1 番目のフォルダーは "<ユーザー名>@<コンピューター名><日付> <時刻>" となります。 このパターンは、これらの各フォルダーの命名に使用されます。
ローカル テスト実行用の配置フォルダー
上の図では、ClassLibrary1 ソリューションに ClassLibary1 と TestProject1 という 2 つのプロジェクトが含まれています。 テストが実行済みなので、このソリューションには TestResults というフォルダーもあります。 TestResults フォルダーには、各テスト実行に対して 1 つのテスト結果ファイルが含まれています。 このテスト結果ファイルの拡張子は .trx です。
TestResults フォルダーの下に作成されるその他のフォルダーは、次のとおりです。
テスト実行フォルダー。 TestResults の直下に、開始された各テスト実行に対して 1 つずつ作成されるフォルダーです。 テスト実行フォルダーの名前は、[テスト結果] ウィンドウおよび [テストの実行] ウィンドウに表示されるように、テスト実行と同じです。 テスト実行の名前の既定の形式は、<ユーザー名>@<コンピューター名> <日付> <時刻> です。 テストの実行のフォルダーには、テストの実行前後に実行されるクリーンアップ スクリプトも含まれています。
Out フォルダーとサブフォルダー。 各テスト実行フォルダーには、Out というフォルダーが含まれます。 Out フォルダーは、実際は配置フォルダーです。 テストの実行に必要なアセンブリやその他のファイルまたはフォルダーは、テストの実行が開始されるたびに <ソリューション>\TestResults\<テスト実行>\Out フォルダーにコピーされます。
In フォルダーとサブフォルダー。 各テスト実行フォルダーには、In という名前のフォルダーがあります。 あるテスト結果が生成されると、その結果が In フォルダーまたはサブフォルダーに格納されます。 たとえば、コード カバレッジ結果は、<テスト実行 ID>\<テストが実行されたコンピューター> という名前のサブフォルダーの data.coverage というファイルに格納されます。
配置オプションの設定
テスト配置は次の方法で制御できます。
- 配置の有効化または無効化。 テストを配置フォルダーで行うか、その場で行うかを選択できます。 この手順については、「Visual Studio から自動テストを実行するためのテストの設定の作成」または「テスト計画の一部としての自動テストのテスト設定の作成」を参照してください。
配置項目の選択。 ローカル テスト配置の場合、テスト エンジンは、テストを実行する前に、ファイルとフォルダーの両方の配置項目をコンピューター上の 1 つのフォルダーにコピーします。 配置されるファイルやフォルダーをテスト設定ファイルに追加できます。 この手順については、「Visual Studio から自動テストを実行するためのテストの設定の作成」または「テスト計画の一部としての自動テストのテスト設定の作成」を参照してください。
- 配置項目がコピーされる順序については、「配置順序」を参照してください。
単一テスト用の配置項目の選択
次の手順は、1 つのテスト メソッドのみに該当します。 これらの手順では、Visual Studio Ultimate で指定したテストを実行する前にコピーするファイルを特定します。
"配置アイテム" プロパティを使用して、1 つのテストで使用する項目を配置するには
[テスト ビュー] ウィンドウまたはテスト リスト エディターでテストを選択します。
F4 キーを押します。
このテストの [プロパティ] ウィンドウが表示されます。
[配置アイテム] プロパティをクリックします。
値列に省略記号 (...) が表示されます。
省略記号をクリックします。
[文字列コレクション エディター1] ダイアログ ボックスが表示されます。
テストを実行する前に、テストの配置フォルダーにコピーするフォルダーまたはファイルのパスを入力します。 Enter キーを押し、追加のパスを入力して、配置する追加のフォルダーおよびファイルを指定します。
注意
配置項目のパスでは環境変数を使用できます。 例については、「DeploymentItemAttribute」を参照してください。
[OK] をクリックします。
指定した配置項目は、テストに使用されている実行構成で指定されている配置項目に加えて配置されます。
注意
単体テストの場合、これらの配置項目を示すコードが、テストのソース コードの DeploymentItem 属性に書き込まれます。
DeploymentItem 属性を使用して、1 つのテストで使用するアイテムを配置するには
単体テストを含んでいるソース コード ファイルを開きます。
TestMethod 属性の下に DeploymentItem 属性を追加します。
DeploymentItem 属性のパラメーターとして、このテスト用に配置するフォルダーまたはファイルを指定します。 絶対パスまたは相対パスを使用できます。 相対パスは、.testrunconfig ファイルの RelativePathRoot 設定が基準になります。
C# の場合:
[TestMethod]
[DeploymentItem("MyTestProject\\testdatasource.mdb")]
public void TestMethod1()
{
// TODO: Add test logic here
}
Visual Basic の場合:
<TestMethod()> _
<DeploymentItem("MyTestProject\\testdatasource.mdb")> _
Public Sub TestMethod1()
' TODO: Add test logic here
End Sub
注意
DeploymentItem 属性はテスト メソッドでのみ使用でき、テスト クラスでは使用できません。
単体テストのソース コード ファイルを保存して閉じます。
テストを実行すると、テストで使用されている実行構成で指定された配置項目に加えて、ここで指定した配置項目が配置されます。
配置順序
配置項目は、特定の順序でコピーされます。 後でコピーされる配置項目は、以前にコピーされた配置項目で同じ名前のものが存在する場合、その配置項目を上書きします。 たとえば、テスト設定で指定されている配置項目は、個々のテストで指定されている項目よりも後でコピーされます。
次の一覧は、優先順位の高い項目から低い項目の順番で並べられています。 つまり、最初に一覧表示されている項目は、後で一覧表示されている項目を上書きします。 次の一覧では、特定の項目は配置フォルダーに自動的に配置されます。この中には、テスト アセンブリ、インストルメント化されたバイナリ、および依存アセンブリが含まれます。
テストを構成するファイルまたは複数のファイル。 この中には、単体テストのテスト アセンブリ、手動テストのテキスト ファイルや .mht ファイル、汎用テストなどその他の種類のテストのその他の種類のファイルなどが含まれます。
インストルメント化されたバイナリ。 たとえば、コード カバレッジを有効にするためにインストルメント化されたバイナリ ファイルです。
注意
埋め込みインストルメンテーションを使用している場合、バイナリは最初にインストルメント化され、次に配置ディレクトリにコピーされます。それ以外の場合は、最初にコピーされ、次にインストルメント化されます。 埋め込みインストルメンテーションは、ローカルで実行されるテストの既定の設定です。 この設定は、テストの設定で変更できます。
テスト設定で指定された項目。
たとえば、アプリケーション構成ファイルや依存アセンブリの依存関係。
テストごとの配置項目。 テスト メソッド用に指定された項目が含まれます。