指定 Visual Studio 測試的測試設定
當您從 Visual Studio 或在組建服務中執行測試時,測試架構可能會收集資料,例如診斷追蹤資訊、系統資訊或自動程式碼 UI 測試的視訊錄製。 您也可以在測試電腦上模擬可能的瓶頸、減少可用的系統記憶體,或模擬速度較慢的網路。
如果應用程式在多部電腦上執行,您可以分別針對每部電腦設定這些選項,並選擇要執行測試程式碼的電腦。
重要
.testsettings 和 .runsettings
如果您熟悉舊版 Visual Studio 中的測試,就會發現單元測試專案中不再包含 .testsettings 檔案。Visual Studio 2012 中引入的新版測試架構可以使用 .runsettings 檔案進行設定。
如果您使用 .testsettings 檔案,則會使用 MSTest 測試架構執行測試。這樣的執行速度較慢,而且無法讓您從協力廠商測試架構執行測試。
因此:
-
盡可能使用預設組態。
-
若要在測試期間提供其他可用的檔案 (例如,測試資料或組態檔),請將檔案併入專案中,並設定 [複製到輸出] 屬性。如果這樣做並不實用,可以在測試類別或方法上使用 DeploymentItemAttribute 部署其他檔案或目錄。
-
如果您想要設定測試回合的某些方面 (例如,部署目錄或程式碼涵蓋範圍分析),請使用 .runsettings 檔案。
-
使用 .testsettings 檔案可以設定診斷資料收集,並控制分散在多台電腦上的測試。
您必須在 Web 效能和負載測試以及在自動程式碼 UI 測試中使用 .testsettings 檔案。
需求
- Visual Studio Ultimate 或 Visual Studio Premium 或 Visual Studio Test Professional
本主題將描述如何在 Visual Studio 中定義測試設定。 如果您要在 Microsoft Test Manager 中執行系統測試,請參閱使用 Microsoft Test Manager 建立自動化系統測試的測試設定。
何時應該使用測試設定檔?
當您要:
收集診斷資料,以便找出應用程式中的 Bug。
模擬應用程式在生產環境中可能偶爾發生的潛在瓶頸。
在不同的電腦上執行應用程式的用戶端、伺服器及其他部分,以確認它在分散式環境中會如預期般運作。
將大量測試分散到其他電腦。
執行 Web 效能測試和負載測試。 如果您已將 Web 效能測試和負載測試專案加入至方案,則它已經包含 .testsettings 檔案。 您只要編輯該檔案就行了。
警告
如果您使用測試設定檔案,單元測試會執行得更緩慢。建議您不要在單元測試中使用測試設定檔案。您可以改用 .runsettings 檔案設定單元測試。若要部署其他檔案,請使用 DeploymentItemAttribute。
但是,Web 效能測試和負載測試永遠使用測試設定檔案。
如何使用測試設定檔?
將測試設定檔案加入至方案,然後選取您要使用的檔案。 如果您希望可以快速切換不同的設定,可以加入多個測試設定檔案。
將 .testsettings 檔案加入至您的方案。
在 Visual Studio 方案的內容功能表上,選擇 [加入]、[新增項目],然後選取 [測試設定]。
編輯測試設定檔案
選取要使用的測試設定:
選取單元測試及自動程式碼 UI 測試的測試設定:
在 [測試] 功能表上,選擇 [測試設定]、[選取測試設定檔]。選取單元測試和自動程式碼 UI 測試的測試設定
選取 Web 效能測試及負載測試的測試設定:
開啟方案中您要使用之 .testsettings 檔案的內容功能表,然後選取 [作用中負載和 Web 測試設定]。選取 Web 效能測試及負載測試的測試設定
我還應該做什麼?
備註將測試設定加入至方案,而不是專案。
選取 Web 效能測試及其他類型測試的測試設定時,需使用不同的命令。 Web 效能測試永遠需要測試設定檔。 單元測試和自動程式碼 UI 測試不需要測試設定檔。
警告:我們不建議您將測試設定套用至 Visual Studio 2013 單元測試專案,除非您具體需要它所提供的設定。 如果您套用測試設定,則會使用較舊的測試架構執行測試,如此將會喪失新架構具備的效能和彈性優勢。
如果您使用測試設定檔,但稍後決定不要使用它,可以在 [測試] 功能表上選擇 [測試設定] 將它取消。
這項建議不適用於 Web 效能測試和負載測試,因為這兩種測試一定要有設定檔。
測試設定會選取並控制「診斷資料配接器」(Diagnostic Data Adapter)。 有多種配接器可用來收集不同類型的資訊,並設定執行測試所在的環境。
測試設定也會選取「測試控制器」(Test Controller)。 如果您想要在多部電腦上執行應用程式,可以使用測試控制器。
當您將 Web 效能測試和負載測試專案加入至方案時,會建立預設的 Local.testsettings 檔案。 這個檔案會自動加入至方案的 [方案項目] 資料夾底下。 這樣就可以在本機上執行測試,而不需要選取診斷資料配接器。 您可以加入或編輯 .testsettings 檔案來指定診斷資料配接器和測試控制器。
如需其他指引,請參閱使用 Visual Studio 2012 測試持續傳遞 – 第 6 章:測試工具箱 (英文)。
編輯測試設定
您可以使用 [測試設定] 對話方塊中的下列頁面,設定測試設定的各種值:
一般
角色
資料和診斷
部署
安裝和清除指令碼
主機
測試逾時
單元測試
Web 測試
測試設定: 角色
在 [角色] 頁面上,您可以設定在本機電腦上執行測試或是從遠端執行測試:
預設值為 [本機執行]。 這表示測試和應用程式會在 Visual Studio 電腦上執行,或是在您簽入程式碼之後於組建伺服器上執行。 繼續進行資料和診斷。
[使用遠端集合的本機執行] 是測試 Web 應用程式或用戶端-伺服器系統的一般組態。 測試程式碼會在本機電腦上執行,但是您也可以從安裝在其他電腦上的應用程式元件收集測試資料。
[遠端執行] 是在您不想於本機上執行應用程式的任何部分時使用。 這是應用程式需要特定平台 (例如特定 Web 瀏覽器或資料庫) 時的一般組態。 您可以在每部電腦上收集測試資料並設定測試環境。
設定測試控制器和角色,以進行遠端資料收集和執行
遠端執行意味著,除了本機電腦之外,您還會在一部或多部電腦上安裝應用程式。 測試設定可以指定這些機器的資料收集和測試環境組態。 每部電腦都必須具有連結至測試控制器的測試代理程式。 測試控制器會讀取測試設定,並使用代理程式設定每部電腦的測試環境和診斷資料配接器。 您可以手動安裝測試控制器和代理程式,或是使用 Microsoft Test Manager 建立實驗室環境。
若是遠端測試,電腦會以角色名稱識別,例如 "SQL Server"、"Web Server" 和 "Desktop Client"。這些名稱可讓您指定每部電腦的組態。 當您安裝應用程式進行測試時,可以使用角色名稱為應用程式的每個元件挑選正確的電腦。
從 [控制器] 下拉式清單,為您要用來執行測試或收集資料的測試代理程式選擇測試控制器。
若要加入您要用來執行測試和收集資料的角色,請選擇 [加入]。 例如,您可能會將角色命名為 "Desktop Client" 或 "Web Server"。
選取要執行測試的角色,然後選擇 [設定為執行測試的角色]。 通常這是安裝應用程式用戶端元件所在的角色。
注意事項 您所定義的其他角色將不會執行測試程式碼,只會在根據 [資料和診斷] 頁面中您針對角色所指定的資料和診斷配接器收集資料時使用。
若要選擇可用於角色的測試代理程式,您必須建立該角色的屬性,然後將這些屬性指派至您的測試代理程式。 如果您想要在多部電腦上同步執行測試,則必須將角色中設定為執行測試的屬性指派至多個測試代理程式。 若要建立屬性,請選取角色,然後在屬性清單上方的工具列中選擇 [加入]。
[代理程式選取規則] 對話方塊隨即顯示。
在 [屬性名稱] 中輸入名稱,並且在 [屬性值] 中輸入值,然後選擇 [確定]。 盡可能多地加入您需要的屬性。
例如,您可以加入名為 "RAM > 16GB" 且值為 "True" 或 "False" 的屬性,以便篩選配備 16 GB 以上記憶體的測試代理程式電腦。 不過,您必須在測試代理程式上手動選擇屬性值。 屬性值不會自動根據電腦的規格設定。
若要將屬性套用至一個或多個測試代理程式,您可以使用管理測試控制器對話方塊將屬性指派至測試代理程式。
測試設定: 資料和診斷
在 [測試設定] 對話方塊中,選擇 [資料和診斷] 頁面。 此時,依據您在角色頁面中設定選項的方式,使用下列其中一個選項:
在本機電腦上收集資料和診斷資料
若要在本機電腦上包含您想要收集的資料和診斷,請根據測試需要選取「診斷資料配接器」(Diagnostic Data Adapter)。 若要設定您加入的診斷資料配接器,請選取特定診斷資料配接器,然後選擇資料和診斷配接器清單上方的 [設定] 選項。
使用角色在遠端電腦上收集資料和診斷資料
在 [資料和診斷] 頁面中,您可以選取角色用來收集資料的「診斷資料配接器」(Diagnostic Data Adapter),藉以定義角色的行為。 因此,如果您針對角色啟用了一個或多個資料和診斷配接器,則測試控制器將會選擇可用的測試代理程式電腦,根據您針對角色定義的屬性收集指定之資料和診斷配接器的資料。 若要選取您要為每個角色收集的資料和診斷資料配接器,請選取角色。 針對每個角色,根據各項測試的需求,選取診斷資料配接器。 若要設定您為每個角色選取的個別診斷資料配接器,請選擇資料和診斷配接器清單上方的 [設定] 選項。
角色和診斷資料配接器的範例:
例如,您可以建立名為 "Desktop Client" 且 "Uses SQL" 屬性設定為 "True" 的用戶端角色,以及名為 "SQL Server" 且屬性設定為 "RAM > 16GB" 的伺服器角色。 如果您在 [角色] 頁面中選擇 [設定為執行測試的角色],藉以指定 "Desktop Client" 將執行測試,則測試控制器將會選取其測試代理程式之 "Uses SQL" 屬性設定為 "True" 的電腦來執行測試。 此外,測試控制器也會選取其測試代理程式含有 "RAM > 16GB" 屬性的 SQL Server 電腦,以便只收集該角色所包含之資料和診斷配接器所定義的資料。 "Desktop Client" 測試代理程式也可以收集本身執行所在電腦的資料,但是您同樣必須為該角色選取資料和診斷配接器。
注意事項 |
---|
下表僅顯示可與 Visual Studio 中的測試搭配使用的配接器。如需 Microsoft Test Manager 中所使用診斷資料配接器的詳細資訊,請參閱使用測試設定安裝電腦和收集診斷資訊。 |
適用於自動化測試的診斷資料配接器
診斷資料配接器 |
相關主題 |
||||
---|---|---|---|---|---|
用於 IntelliTrace 及測試影響的 ASP.NET 用戶端 Proxy:此 Proxy 可讓您針對 IntelliTrace 和測試影響診斷資料配接器,收集從用戶端到 Web 伺服器之 HTTP 呼叫的相關資訊。 |
不需任何設定,即可收集這項資訊。 |
||||
IntelliTrace:您可以設定 IntelliTrace 的診斷資料配接器,以收集特定診斷追蹤資訊來協助找出難以重現的 Bug。 這個配接器會建立包含此資訊的 IntelliTrace 檔 (副檔名為 .iTrace)。 測試失敗時,您可以建立 Bug。 隨測試結果儲存的 IntelliTrace 檔,會自動連結至此 Bug。 IntelliTrace 檔中收集的資料可縮短重現及診斷程式碼錯誤所需的時間,進而提高偵錯的效能。 透過這個 IntelliTrace 檔,您可以在另一台電腦上模擬本機工作階段,以降低無法重現 Bug 的可能性。 如需詳細資訊,請參閱使用 IntelliTrace 錄製程式碼執行以偵錯應用程式。 |
|||||
ASP.NET 分析工具:您可以建立包含 ASP.NET 程式碼剖析的測試設定,以收集 ASP.NET Web 應用程式的效能資料。
|
|||||
程式碼涵蓋範圍 (Visual Studio 2010):您可以建立包含程式碼涵蓋範圍資訊的測試設定,用以調查測試所涵蓋的程式碼數量。
如需程式碼涵蓋範圍的詳細資訊,請參閱使用程式碼涵蓋範圍來決定所測試的程式碼數量。 |
|||||
事件記錄:您可以設定測試設定來包含事件記錄收集 (該事件記錄收集是包含在測試結果中)。 |
|||||
網路模擬:您可以使用測試設定指定要對測試加上人為的網路負載。 網路模擬可藉由模擬特定網路連線速度 (如撥號連線),對電腦的對外通訊產生影響。
|
|||||
系統資訊:測試設定可設定為包含測試執行所在電腦的相關系統資訊。 透過測試設定,系統資訊會指定於測試結果中。 |
不需任何設定,即可收集這項資訊。 |
||||
測試影響:您可以收集在測試案例執行時,應用程式程式碼使用了哪些方法的相關資訊。 您可以將這項資訊對照開發人員對應用程式程式碼所做的變更,判斷有哪些測試受到這些開發變更的影響。 |
|||||
視訊錄製器:您可以在執行自動化測試時,建立桌面工作階段的視訊錄製。 此視訊錄製在檢視自動程式碼 UI 測試的使用者動作時可能很有用。 視訊錄製可協助其他小組成員找出難以重現的應用程式問題。 |
測試設定: 部署
在 [測試設定] 對話方塊中,選擇 [部署] 頁面。
若要在每次執行測試時建立部署的個別目錄,請選取 [啟用部署]。
注意事項 若您選擇執行此動作,您可以在執行測試時繼續建置應用程式。
若要將檔案加入至您用來執行測試所需的目錄,請選擇 [加入檔案],然後選取您要加入的檔案。
若要將目錄加入至您用來執行測試所需的目錄,請選擇 [加入目錄],然後選取您要加入的目錄。
注意事項 如需如何使用屬性 (Property) 和 DeploymentItem 屬性 (Attribute) 為個別測試部署檔案和目錄的詳細資訊,請參閱 如何:部署測試的檔案。
測試設定: 安裝和清除指令碼
若要在測試之前和之後執行指令碼,請選擇 [測試設定] 對話方塊中的 [安裝和清除指令碼] 頁面。
在 [安裝指令碼] 中輸入指令碼檔的位置,或選擇省略符號 (...) 尋找安裝指令碼。
在 [清除指令碼] 中輸入指令碼檔的位置,或選擇省略符號 (...) 尋找清除指令碼。
測試設定: 主機
若要使用不同的主機執行測試,請選擇 [測試設定] 對話方塊中的 [主機] 頁面。
若要在與 ASP.NET 網站相同的處理序中執行單元測試,請選取 [主機類型] 中的 [ASP.NET]。
使用 [在 32 位元或 64 位元處理序中執行測試],即可選取您想要以 32 位元或 64 位元處理序的形式執行測試。
為了達到最大彈性,您應該使用 [任何 CPU] 組態來編譯測試專案。 如此您就可以在 32 位元和 64 位元代理程式上執行。 使用 [64 位元] 組態來編譯測試專案並沒有任何優點。
測試設定: 測試逾時
(選擇性) 若要限制每個測試回合和個別測試的執行時間長度,請選擇 [測試設定] 對話方塊中的 [測試逾時] 頁面。
若要在超過時間限制時中止測試回合,請選取 [如果總時間超過以下值,即中止測試回合],然後輸入此限制的值。
若要讓個別測試在超過時間限制時失敗,請選取 [如果個別測試執行時間超過以下值,便將該測試標記為失敗],然後輸入此限制的值。
測試設定: 單元測試
(選擇性) 如果您需要指定單元測試需要載入的組件位置,請選擇 [單元測試]。
針對 [要載入之組件的根資料夾],選擇 [瀏覽] 尋找資料夾並填入文字方塊。
指定的根資料夾可以包含環境變數,而且代表將做為測試執行所在之 AppDomain 的 ApplicationBase 使用的目錄。 這個目錄中的所有組件都可由單元測試載入。 在實際執行環境中,建議您最好將此值設定為待測程式碼組件的安裝目錄。 在開發環境中,建議您最好將此項設定為待測程式碼組件的建置目錄。 這樣可確保您對產品二進位檔所設有的任何參考都可以在測試的探索和執行期間載入並解析,而不需要在測試進行時複製產品二進位檔。
如果此處沒有設定任何值,測試執行所在之 AppDomain 的 ApplicationBase 就會設定為包含測試的目錄。
選取或清除 [為測試目錄中的組件使用載入內容] 的核取方塊。
根據預設,大部分組件都會載入至正確的「載入內容」中。一般而言,您應該讓 [為測試目錄中的組件使用載入內容] 保持選取狀態。 不過,在某些情況下,您可能會想要關閉這項功能:
如果您的測試目錄具有大量組件、您已經在 [要載入之組件的根資料夾] 底下指定位置,而且測試不需要載入至載入內容,當您沒有使用載入內容來載入這些測試組件時,可能會看見效能提升。
如果您的測試需要載入至載入內容以外的內容 (不常見)。
如需詳細資訊,請參閱組件載入的最佳作法。
在 [測試執行時要使用的資料夾] 底下,選擇 [加入資料夾]。
[瀏覽資料夾] 對話方塊隨即顯示。
尋找要使用的資料夾,然後選擇 [確定]。
[測試執行時要使用的資料夾] 設定是您可能會最常使用的設定。 您可以指定在測試探索和執行期間應該從中解析組件的多個資料夾路徑。 在這個區段中指定的每個路徑都可以包含環境變數。 除了此處所指定的每個路徑以外,還有兩個與它相關聯的選項:
第一個選項:選取 [使用載入內容] 核取方塊,以便指定解析目錄中的組件時,目錄應該使用載入內容 (如果不需要載入內容測試也能正確執行,那麼清除此核取方塊可能可以改善效能)。
第二個選項:選取 [包括子資料夾] 核取方塊,以便指定解析目錄中的組件時要包括任何子資料夾。
在 [探索測試時要使用的其他資料夾] 底下,選擇 [加入資料夾]。
[瀏覽資料夾] 對話方塊隨即顯示。
尋找要使用的資料夾,然後選擇 [確定]。
當您在 Team Build 底下從遠端執行測試或從 Microsoft Test Manager 執行自動化回合時,[探索測試時要使用的其他資料夾] 選項會很有用。 此處提供的路徑將用於組件解析,但只在測試探索期間使用。 這些路徑可以包含環境變數。 如果測試已排程為從組建置放遠端執行,而且並非測試組件的所有相依性都位於相同的目錄中,這些路徑可用來確保 MSTest 或測試控制器可以找到足夠相依組件來探索測試並將測試排程為在遠端電腦上執行。
若是從 Microsoft Test Manager 排程的回合,就會有一個額外的語彙基元 %BuildDrop%,它可用來廣泛地參考組建置放位置。 這樣便不需要在每次測試新組建時建立或更新測試設定。 可惜的是,這個語彙基元無法直接透過 Team Build 支援。 不過,如果組建置放位置設定於組建定義中名為 BuildDrop 的環境變數內,它將具有相同的結果。
如需詳細資訊,請參閱使用單元測試驗證程式碼。
測試設定: Web 測試
(選擇性) 若要在測試設定中設定可控制 Web 效能測試執行方式的屬性,請選擇 [Web 測試]。
選取 [固定執行計數] 或 [每一資料來源資料列一次執行]。
使用 [瀏覽器類型] 下拉式清單來選取要搭配 Web 效能測試使用的 Web 瀏覽器。 例如 Internet Explorer 9.0。
注意事項 Web 效能測試需要 Visual Studio Ultimate。
(選擇性) 選取模擬考慮時間,即可啟用模擬的人為暫停。
(選擇性) 選取 [將要求 URL 的目錄當做 Cookie 的預設路徑使用]。
如果 [將要求 URL 的目錄當做 Cookie 的預設路徑使用] 已停用,則您的 Web 測試會遵循下列行為:
如果要求 (例如 www.abc.com/myapp/abc.aspx) 在其回應中設定 Cookie,但是未指定路徑,則測試將會使用整個要求 URL 做為該 Cookie 的路徑。 這表示,Cookie 只會隨著 URL 為 www.abc.com/myapp/abc.aspx 的後續要求傳送。
如果 [將要求 URL 的目錄當做 Cookie 的預設路徑使用] 已啟用,則您的 Web 測試會遵循下列行為:
如果要求 (例如 www.abc.com/myapp/abc.aspx) 在其回應中設定 Cookie,但未指定路徑,則測試將會使用要求 URL 的目錄做為該 Cookie 的路徑。 這表示,Cookie 將會隨著子路徑為 www.abc.com/myapp 的所有要求 (例如 www.abc.com/myapp/xyz.aspx) 傳送。
這個行為與 RFC 2109 中指定的第 1 版 Cookie 一致。 如需詳細資訊,請參閱要求註解:2109 (英文)。
請參閱
工作
如何:從 Microsoft Visual Studio 新增測試設定檔案
如何:從 Microsoft Visual Studio 編輯測試設定檔案
如何:從 Microsoft Visual Studio 選取現用測試設定
概念
Compatibility of Test Settings with Visual Studio 2010