如何:部署測試的檔案
在執行測試之前,測試和應用程式必須複製到它們可以執行的位置,以及這些專案所參考的其他組件。 測試通常還需要其他檔案 (例如測試資料、組態檔、資料庫和明確載入的組件。 若要使這些額外的檔案可供測試,您必須指定他們要部署。
在何處測試執行?
Visual Studio 2012 可以執行測試數位:
在建置輸出資料夾,通常為 <your project>\ bin \ Debug。
在電腦上的在本機測試部署資料夾 和組建相同。
**在遠端電腦上。**遠端部署用來測試分散式或在特定平台上執行的 Web 應用程式和應用程式。 如需遠端部署必須設定 測試控制器和測試代理程式,因此,您通常會在 實驗室環境的測試。 如需遠端部署的詳細資訊,請參閱 HOW TO:使用測試控制器和測試代理程式執行測試。
如何?部署本機測試的測試檔案嗎?
這最好的方式:
在建置程序中,將檔案複製到建置目標目錄。
如果它們是針對測試專案,將它們當做內容檔在 Visual Studio 中測試專案。 選取它們在方案總管中將 [複製到輸出] 屬性設定為 [複製,如果更新]。
否則,請定義建置工作將檔案複製到建置輸出目錄。 例如:
xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
開啟測試專案的專案屬性。 在 C# 專案中,開啟 [建置事件] 頁面。 在 Visual Basic 專案,請開啟 [編譯] 頁面並選取 [建置事件]。 將複製命令加入至 [建置後事件] 欄位。
您可以在測試方法或測試類別的 DeploymentItemAttribute 指定應該從組建輸出資料夾複製到部署目錄中的檔案和資料夾。
[TestClass] class TestClass1 { [TestMethod] [DeploymentItem("source", "targetFolder")] public void Test1() { string testData = System.IO.File.ReadAllText(@"targetFolder\source"); ... } }
<TestClass()> _ Public Class UnitTest1 <TestMethod()> _ <DeploymentItem("source", "targetFolder")> _ Sub TestMethod1() Dim testData As String = _ System.IO.File.ReadAllText(@"targetFolder\source") ... End Sub End Class
來源 是複製檔案或目錄。 路徑可以是絕對路徑,或是相對於建置輸出目錄。
targetFolder 是選擇性的。 它是原始程式檔 (Source File) 或目錄內容將複製的目錄。 路徑可以是絕對路徑,或是相對於部署目錄。 預設值為。」,部署目錄。
注意事項 targetFolder 永遠是目錄,而非檔案路徑。使用 DeploymentItem,您無法變更檔案的名稱。
您可以使用屬性在許多情況下,當您要,因此,您可以將它套用至測試方法或測試類別。
當您選取一組測試執行時,在其 DeploymentItem 屬性指定的所有項目複製到,在測試執行開始之前。
執行單元測試直接在組建加入該輸出目錄,因此,測試執行更快速。 在您簽入測試之後,這特別適用於組建伺服器。
這樣做,將 .runsettings 檔案加入至方案,其中包含 <DeploymentEnabled>False</DeploymentEnabled>並在 [測試] 中選取檔案, [ [測試設定] 功能表。 相同的效果。DeploymentItemAttribute 根本不使用的任何測試回合結果。
不過,您不能避免使用,如果的部署資料夾中使用 .testsettings 檔案,針對所需的 Web 和負載測試時,自動程式碼 UI 測試和部署應用程式至遠端電腦的任何測試。
我何時應該使用 .testsettings 檔案嗎?
您不需要簡單單元測試的 .testsettings 檔案。 如果不需要 .testsettings 檔案,而不要使用。 這會讓單元測試緩慢執行,因此,它與協力廠商測試架構不相容。 考慮其他部署方式。
如果這些陳述式任一狀況,您需要 .testsettings 檔案:
您在 Web 效能測試和負載測試 或 自動程式碼 UI 測試
要從測試的 收集其他診斷資料。
如果您使用 .testsettings 檔案,您的應用程式與測試組件都會複製到部署資料夾中。
您在 .testsettings 編輯器的 [部署] 頁面可以指定資料檔案和目錄。 它們會被複製到每個測試回合之前的部署資料夾。 在這個頁面指定項目路徑都相對於方案目錄和永遠在沿著應用程式的部署資料夾中部署和測試組件。
如果您要使用絕對路徑或指定不同的目標目錄,開啟 XML 編輯器的 .testsettings 檔案,並插入片段類似這樣:
<Deployment>
<DeploymentItem filename="C:\MyTestData\TestData.mdb"
outputDirectory="D:\TestDB\" />
</Deployment>
outputDirectory 可以是絕對或相對部署目錄。
何時使用個別的部署資料夾嗎?
使用 Visual Studio 中,如果您執行測試時,部署資料夾中建立在您的方案資料夾下的 TestResults。
使用個別的部署資料夾,如果有任何測試方法或測試類別在測試回合中有 DeploymentItem 屬性,或者,如果您使用 .testsettings 檔案。
如果使用部署資料夾,下列檔案和資料夾複製到部署資料夾,在測試執行之前:
測試組件檔案。
所有的相依組件。
您明確指定,則使用 DeploymentItemAttribute 或 .testsettings 的檔案和目錄
本機測試回合的部署資料夾
檔案時部署,以及序列?
在測試回合,在這種情況下,所有測試開始之前,將部署的所有檔案複製。 測試回合是單一命令或排程的事件啟始批次的測試。 這表示,如果您指定為特定測試方法將部署的資料檔案,同時為相同的執行的其他測試可供使用。
下列項目以顯示的順序複製,。 要複製的最新重新撰寫這些複製之前的項目,則為,如果它們有相同的名稱。
項目指定使用 DeploymentItemAttribute
相依性。 例如,應用程式組態檔和相依組件。
在 .testsettings檔案中指定的項目,因此,如果您使用。
已檢測的二進位檔; 例如,檢測啟用程式碼涵蓋範圍或 IntelliTrace 的組件。
如果您使用就地檢測,二進位檔會先經過檢測後再複製到部署目錄;否則便會先複製後再進行檢測。 就地檢測是本機執行測試的預設值。
組成測試的檔案。 這些檔案包括單元測試的測試組件、手動測試的文字檔案或 .mht 檔案,或是其他測試類型 (例如一般測試) 的其他檔案類型。
要在 TestResults 目錄?
測試回合資料夾: TestResults 包含啟動的每個測試回合的資料夾。 它會建立其名稱包含時間。
如果您指定設定,並在 .testsettings 的清除指令碼檔案,測試回合資料夾都包含這些指令碼。
Out。 每個測試回合資料夾都包含一個名稱為 Out 的資料夾。 Out 資料夾就是實際的部署資料夾,組件和其他部署檔案複製,以及在測試執行開始時。
在。 程式碼涵蓋範圍結果和其他測試結果在名稱為的資料夾中。