共用方式為


DeploymentItem 中繼資料

DeploymentItem 中繼資料會識別測試執行期間測試所使用的檔案和資料夾的檔案和資料夾相依性,以便 Taef 能夠識別這些檔案,並適當地 (複製這些檔案,例如,在 跨電腦執行案例中,Taef 會將 DeploymentItem 屬性所識別的檔案部署到指定的測試電腦) 。

Taef DeploymentItem 實作非常類似于在 VSTS 的 DeploymentItemAttribute 類別 中找到的實作。

DeploymentItem 中繼資料可以套用至元件、類別或測試層級。 DeploymentItem 中繼資料所指定的專案將會由時間對應 (元件、測試類別或測試) 安裝程式執行來部署。 例如,如果 DeploymentItem 中繼資料指定相依性 (,檔案) 且該相依性已存在於目的地,則 TAEF 會執行 CRC 比較,而且只會在檔案變更時複製該檔案。 如果 DeploymentItem 中繼資料指定相依性,而且找不到相依性,則會記錄錯誤,讓測試失敗 (或所有測試類別或元件測試,並據以) 。 TAEF 只會針對每個元件、類別或測試部署一次檔案,也就是說,如果這些是資料驅動,則不會在每個元件、類別或測試擴充上執行部署。

語法

[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")]  

標籤file1.xml位於測試 dll 旁作為相依性。 此中繼資料可以解譯為系統將名為 的專案部署file1.xml位於測試 dll 資料夾旁邊的測試 dll 目錄。 此設定只適用于跨電腦案例。

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

將名為 file2.xml 的專案部署至測試 dll 目錄中所建立 DataFiles 子目錄旁的測試 dll。

[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)
{
    ...
}

原生測試

針對原生測試,屬性格式類似于 Managed 程式碼格式。 不過,由於原生屬性只有單一值,因此專案路徑和選擇性目的地會在屬性值中指定,並以 ' > ' 字元分隔:

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>