次の方法で共有


DeploymentItem メタデータ

DeploymentItem メタデータは、テストの実行中にテストで使用されるファイルとフォルダーのファイルとフォルダーの依存関係を識別し、Taef がこれらを識別して適切にコピーできるようにします (たとえば、コンピューター間の実行シナリオでは、Taef は DeploymentItem プロパティで識別されたファイルを指定されたテスト マシンに展開します)。

Taef DeploymentItem の実装は、VSTS の DeploymentItemAttribute クラス の実装によく似ています。

DeploymentItem メタデータは、アセンブリ、クラス、またはテスト レベルに適用できます。 DeploymentItem メタデータで指定された項目は、対応する (アセンブリ、テスト クラス、またはテスト) セットアップが実行されるまでにデプロイされます。 DeploymentItem メタデータが依存関係 (ファイルなど) を指定し、その依存関係が宛先に既に存在する場合、TAEF は CRC 比較を行い、変更された場合にのみファイルをコピーします。 DeploymentItem メタデータが依存関係を指定し、依存関係が見つからない場合は、テスト (またはそれに応じてすべてのテスト クラスまたはアセンブリ テスト) に失敗するエラーがログに記録されます。 TAEF は、アセンブリ、クラス、またはテストごとに 1 回だけファイルを配置します。つまり、データ ドリブンの場合、すべてのアセンブリ、クラス、またはテスト展開でデプロイが行われるわけではありません。

構文

[DeploymentItem("FileOrFolderToDeploy", "DestinationFolder")]

ここで 、FileOrFolderToDeployは、テスト dll があるディレクトリを基準としたファイルまたはフォルダー パスです。 FileOrFolderToDeploy がフォルダーの場合、その内容はすべてコピーされますが、フォルダー自体は作成されません。 FileOrFolderToDeploy の下にフォルダーの階層がある場合、Taef はこれらのディレクトリをすべて再帰的にコピーし、ディレクトリ階層を維持します。

DestinationFolder は、テスト dll が存在し、配置項目がコピーされるディレクトリを基準としたフォルダー パスです。 DestinationFolder パスは、以下を使って指定できます。 (例: ..\MyFiles)。

テスト dll があるフォルダーにデプロイするには、DestinationFolder を省略できます。

[DeploymentItem("FileOrFolderToDeploy")]

プロパティの複数の部分がサポートされています。 次に例を示します。

[TestClass]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public class UnitTest1
{
    ...
}

[DeploymentItem("file1.xml")]  

依存関係としてテスト dll の横にあるタグfile1.xml。 このメタデータは、システムがテスト dll の横のフォルダーにある file1.xml という名前の項目をテスト dll ディレクトリにデプロイすると解釈できます。 この構成は、マシン間のシナリオでのみ役立ちます。

[DeploymentItem("file2.xml", "DataFiles")]

テスト dll の横にある file2.xml という名前の項目を、テスト dll ディレクトリ内の作成された DataFiles サブディレクトリにデプロイします。

[DeploymentItem("C:\\\\MyDataFiles\\\\MyDataFiles2\\\\")]  

C:\\MyDataFiles\\MyDataFiles2\\ ディレクトリ内で見つかったすべての項目とディレクトリをデプロイします。 この構成では、展開ディレクトリの下に MyDataFiles\MyDataFiles2 ディレクトリは作成されません。 MyDataFiles 内のすべてのファイルとディレクトリが、テスト dll ディレクトリにデプロイされます。 MyDataFiles\MyDataFiles2 ディレクトリ構造全体をコピーするには、出力ディレクトリとして MyDataFiles\MyDataFiles2 を指定する必要があります。

[DeploymentItem("%myDir%\\myFile.txt")]

%myDir% が解決するディレクトリにそのファイルが存在する場合は、ファイル myFile.txtをデプロイします。 TAEF が環境変数を解決できない場合は、エラーがスローされます。

管理テスト

DeploymentItem (別名 DeploymentItemAttribute) 属性は、テスト メソッド ([TestMethod] 属性で修飾)、テスト クラス ([TestClass] 属性で修飾) またはテスト アセンブリに適用できます。 ただし、VSTS はアセンブリ レベルでこのプロパティをサポートしていないため、アセンブリ レベルでこのプロパティを適用するには、アセンブリのセットアップに適用する必要があります (AssemblyInitialize 属性によって修飾されます)。

[AssemblyInitialize]
[DeploymentItem("file1.xml")]
[DeploymentItem("file2.xml")]
[DeploymentItem("file3.xml")]
public  static AssemblySetup(TestContext testContext)
{
    ...
}

ネイティブテスト

ネイティブ テストの場合、プロパティの形式はマネージド コードの形式に似ています。 ただし、ネイティブ プロパティには単一の値しかないため、項目パスと省略可能な変換先はプロパティ値で指定され、'>' 文字で区切られます。

BEGIN_TEST_CLASS(TestClassExample)
    TEST_CLASS_PROPERTY(L"DeploymentItem", L"C:\\Dependencies\\>Dependencies")
END_TEST_CLASS()

スクリプト テスト

スクリプト テストの場合、プロパティの形式はネイティブ テストの場合と同じです。

<method name="TestOne">
    <TestMethodProperty name="DeploymentItem" value="C:\\Dependencies\\>Dependencies"/>
</method>