Visual Studio ALM 測試工具的疑難排解
當您測試程式碼時,某些狀況會產生錯誤或警告,甚至導致測試失敗。 本主題會說明其中某些狀況,以及解決它們所採取的步驟。
測試執行疑難排解
造成測試無法執行的狀況,通常可以歸咎於部署測試檔案 (或其他執行測試所需的檔案) 失敗。
遠端測試。 對於遠端測試,與遠端電腦的通訊問題也可能會造成錯誤。 這些錯誤以及測試層級與執行層級的其他錯誤,在測試執行疑難排解中有所描述。
ASP.NET 單元測試。 如果您的 ASP.NET 單元測試是在 IIS 處理序中執行,基於安全性的目的,可以選擇將 ASP.NET 處理序當成「非預設使用者」(Non-default User) 執行,也就是以不同的處理序識別執行。 在此狀況下,測試執行可能失敗。
Web 測試疑難排解。 當您執行 Web 測試時,可能會發生各種錯誤。 造成這些錯誤的原因可能是遺漏資料繫結屬性 (Attribute)、安全性設定的問題,或嘗試存取防火牆以外的網站。 如需詳細資訊,請參閱疑難排解 Web 效能測試。
負載測試疑難排解。 當您執行負載測試時,可能會發生各種錯誤。 造成這些錯誤的原因可能是負載測試資料庫的問題、負載測試的計數器集合的問題、測試代理程式和控制器設定錯誤,或者負載測試所包含的其中一個測試有問題。 如需詳細資訊,請參閱負載測試疑難排解。
重新簽署強式名稱組件
當您執行單元測試時,就是在二進位檔中測試程式碼。 您可以藉著「檢測」(Instrument) 該二進位檔,在測試執行時收集程式碼涵蓋範圍資訊;請參閱 HOW TO:取得程式碼涵蓋範圍資料。 檢測的程序會將產生程式碼涵蓋範圍資訊的程式碼加入至二進位檔中。
如果您測試的二進位檔是強式名稱組件,檢測所造成的程式碼修改會使其簽署失效。 因此在檢測步驟之後,Visual Studio 會立即自動嘗試重新簽署組件。 如需強式名稱組件的詳細資訊,請參閱強式名稱的組件。
有很多狀況可能會造成重新簽署失敗。 如需如何解決這些狀況的詳細資訊,請參閱檢測及重新簽署組件。
程式碼涵蓋範圍資料和 VSPerfMon.exe
如果您執行 VSPerfMon.exe 時,同時執行要收集程式碼涵蓋範圍資料的測試,則會發生下列事件:
如果您以 TRACE 或 SAMPLE 選項執行 VSPerfMon,則同時間執行的測試回合將會失敗,而且在 [測試回合詳細資料] 頁上會報告錯誤。
如果您是以 COVERAGE 選項執行 VSPerfMon.exe,VSPerfMon.exe 處理序便會中止。
對於這兩種狀況,解決辦法是避免同時執行 VSPerfMon.exe 和您要收集程式碼涵蓋範圍資料的測試。 如需 VSPerfMon.exe 工具的詳細資訊,請參閱 VSPerfMon。
這會在何時發生?
執行 VSPerfMon 的最常見狀況如下:
您已啟動程式碼剖析工作階段,該剖析工作階段可能是在 Visual Studio 的執行個體中,而不是在您要執行測試的執行個體。
您藉由直接執行 VSPerfMon.exe 或使用 (更常見的) 包裝函式 VSPerfCmd.exe 收集程式碼涵蓋範圍資料或程式碼剖析資料。
程式碼涵蓋範圍資料並未正確出現
如果您已要求針對您的測試收集程式碼涵蓋範圍資料,但卻未出現,或所顯示的與您的期望不同,可能是發生以下其中一種狀況:
沒有程式碼涵蓋範圍資料出現。 在測試執行期間,特定的二進位檔 (例如 COM DLL) 是由其原始位置載入,而不是由測試部署目錄載入。 這類二進位檔必須就地檢測,否則,即使測試執行成功而且沒有產生執行層級警告,也不會收集程式碼涵蓋範圍資料。 如需詳細資訊,請參閱選擇檢測資料夾。
程式碼涵蓋範圍反白顯示未出現。 當您執行測試、收集程式碼涵蓋範圍資料,然後檢視測試結果時,Visual Studio 會在原始程式碼檔中,將測試回合中測試的程式碼以反白顯示方式指示出來。 您可以選擇指示已涵蓋之程式碼、未涵蓋之程式碼和部分涵蓋之程式碼的顏色。 如果這個反白顯示全部或部分未出現,請確認所選顏色與原始程式碼檔的背景顏色是否不同。 如需選擇反白顯示之顏色的詳細資訊,請參閱 HOW TO:取得程式碼涵蓋範圍資料中的<變更程式碼涵蓋範圍資料的顯示>。
程式碼涵蓋範圍資料合併不正確。 您可以合併含有一個或多個 ASP.NET 測試回合的結果,但是 [程式碼涵蓋範圍結果] 視窗會在 [合併結果] 下以個別節點顯示 ASP.NET 資料,而不會以單一、合併的節點顯示。
合併的程式碼涵蓋範圍資料並未全部顯示。 當您合併程式碼涵蓋範圍資料之後,可以將它以 XML 檔的格式匯出至磁碟中。 如果您重新匯入這個檔案,然後將它與其他資料合併,那麼並非所有統計資料都會顯示。
未匯入程式碼涵蓋範圍資料。 Visual Studio 必須能夠找到磁碟上的特定檔案,才能匯入程式碼涵蓋範圍資料。
已檢測的二進位檔被覆寫。 您嘗試從手動測試期間所執行的程式中,收集程式碼涵蓋範圍資料。 如果您使用 CTRL+F5 啟動該程式,CTRL+F5 動作會導致該程式的二進位檔重新建置。 這會覆寫已檢測的二進位檔,也就是無法收集程式碼涵蓋範圍資料。
如需收集程式碼涵蓋範圍資料的一般資訊,請參閱 HOW TO:取得程式碼涵蓋範圍資料。