HOW TO:設定測試部署
Visual Studio Ultimate 的測試引擎可以在您建立或產生測試的資料夾中或是在個別的部署資料夾中執行測試。 若將測試部署至個別資料夾,則可以在執行測試時繼續建置方案。
在執行測試之前,會將下列檔案和資料夾複製到部署資料夾中:
測試組件檔案。
所有的相依組件。
您所指定的檔案,例如測試所相依的 XML 檔案和組態檔案。 藉由指定要複製的額外部署項目,或是變更部署資料夾,都可以設定部署。
部署資料夾可以是本機或遠端資料夾。 當您使用「測試代理程式控制器」(Test Agent Controller) 和「測試代理程式」(Test Agent) 時,便會進行遠端測試部署。 如需遠端部署的詳細資訊,請參閱 HOW TO:使用測試控制器和測試代理程式執行測試。
當您執行方案的測試時,Visual Studio 會在方案階層架構內,在名為 TestResults 的資料夾下建立部署檔案。 如果 TestResults 資料夾不存在,Visual Studio 便會予以建立。
注意事項 |
---|
如果您正在使用 Visual Studio IDE,這個 TestResults 資料夾就會直接建立在方案資料夾下,如果沒有使用 Visual Studio IDE,則會在目前的資料夾下建立 TestResults 資料夾。 |
每次啟動測試回合時,Visual Studio 就會在 TestResults 資料夾底下建立一組專供這個測試回合使用的資料夾。在下圖顯示的範例中,TestResults 底下的第一個資料夾為 "<使用者名稱>@<電腦名稱><日期><時間>"。 這是用來命名每個資料夾的模式。
本機測試回合的部署資料夾
如先前範例所示,方案 ClassLibrary1 包含兩個專案,ClassLibary1 和 TestProject1。 由於已經執行過測試,這個方案也會包含名稱為 TestResults 的資料夾。 這個 TestResults 資料夾會包含針對每個測試回合的測試結果檔案。 這個測試結果檔案的副檔名為 .trx。
以下會說明在 TestResults 資料夾底下建立的其他資料夾:
測試回合資料夾: 在 TestResults 底下會直接針對每個已啟動的測試回合建立一個資料夾。 如同 [測試結果] 視窗和 [測試回合] 視窗所顯示的,測試回合資料夾具有與測試回合相同的名稱。 測試回合名稱的預設格式為 <使用者名稱>@<電腦名稱> <日期> <時間>。 測試回合資料夾也包含執行測試之前和之後所執行的清除指令碼。
Out 資料夾和子資料夾: 每個測試回合資料夾都包含一個名稱為 Out 的資料夾。 這個 Out 資料夾就是實際的部署資料夾。 測試回合所需的組件和其他檔案或資料夾,在每次啟動測試回合時,都會複製到 <solution>\TestResults\<test run>\Out 資料夾中。
In 資料夾和子資料夾: 每個測試回合資料夾都包含一個名稱為 In 的資料夾。 當產生特定測試結果時,它們會儲存在 In 資料夾或子資料夾中。 例如,程式碼涵蓋範圍結果會儲存至名稱為 data.coverage 的檔案中,該檔案位於與 <測試回合 ID>\<測試執行所在電腦> 同名的子資料夾中。
設定部署選項
您可以透過下列方式來控制測試部署:
- 開啟或關閉部署: 您可以選擇要在部署資料夾中執行測試,還是要就地執行測試。 如需這樣做的程序步驟,請參閱建立測試設定以便從 Visual Studio 執行自動化的測試或將自動化測試的測試設定建立成測試計劃的一部分。
選取部署項目: 在本機測試部署中,測試引擎會在執行測試之前,將部署項目 (包括檔案和資料夾) 複製到電腦上的資料夾中。 您可以加入檔案和資料夾,以在測試設定檔案中進行部署。 如需這樣做的步驟,請參閱建立測試設定以便從 Visual Studio 執行自動化的測試或將自動化測試的測試設定建立成測試計劃的一部分。
- 如需部署項目複製順序的詳細資訊,請參閱部署順序。
選取單一測試的部署項目
下列程序只會套用至一個測試方法。 這些程序會決定 Visual Studio Ultimate 在執行該特定測試之前,會複製哪些檔案。
若要使用部署項目屬性為單一測試部署項目
在 [測試檢視] 視窗或測試清單編輯器中選取測試。
按 F4。
該測試的 [屬性] 視窗隨即顯示。
按一下 [部署項目] 屬性。
省略符號 (…) 隨即出現在值資料行中。
按一下省略符號。
[字串集合編輯器] 對話方塊隨即顯示。
執行測試之前,請輸入您要複製到部署資料夾之資料夾或檔案的路徑。 接著按 Enter,並輸入其他路徑,指定要部署的其他資料夾和檔案。
注意事項 您可以在部署項目的路徑中使用環境變數。 如需範例,請參閱 DeploymentItemAttribute。
按一下 [確定]。
除了測試所用執行組態中指定的部署項目之外,也會一併部署您所指定的部署項目。
注意事項 在單元測試中,指定這些部署項目的程式碼會寫入測試原始程式碼的 DeploymentItem 屬性 (Attribute) 中。
若要使用 DeploymentItem 屬性為單一測試部署項目
開啟包含單元測試的原始程式碼檔。
在 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 屬性只適用於測試方法,不適用於測試類別 (Class)。
儲存並關閉單元測試原始程式碼檔。
執行測試時,除了測試所用回合組態中指定的部署項目之外,也會一併部署您所指定的部署項目。
部署順序
部署項目會依特定順序複製。 如果兩個部署項目的名稱相同,則較晚複製的項目將會覆寫較早複製的項目。 例如,測試設定中所指定部署項目的複製順序,即晚於為個別測試指定的項目。
下列清單從最高優先權排到最低優先權。 亦即,先列出來的項目會覆寫之後列出的項目。 在下列清單中,某些項目會自動部署到部署資料夾中,包括測試組件 (Assembly)、已檢測的二進位檔,以及相依組件。
組成測試的檔案。 這些檔案包括單元測試的測試組件、手動測試的文字檔案或 .mht 檔案,或是其他測試類型 (例如一般測試) 的其他檔案類型。
已檢測的二進位檔; 例如,用來啟用程式碼涵蓋範圍且已經通過檢測的二進位檔案 (Binary File)。
注意事項 如果您使用就地檢測,二進位檔會先經過檢測後再複製到部署目錄;否則便會先複製後再進行檢測。 就地檢測是本機執行測試的預設值。 您可以在測試設定中變更此設定。
測試設定中指定的項目。
相依性,例如應用程式組態檔和相依組件。
每個測試的部署項目。 包括為測試方法指定的項目。