共用方式為


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 旁邊的相依性。 此中繼資料可以解譯為系統將位於測試 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")]

如果檔案 myFile.txt 存在於 %myDir% 解析的目錄中,則部署該檔案。 如果 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>