使用合併的程式碼涵蓋範圍資料
如 HOW TO:合併程式碼涵蓋範圍資料中所述,您可以將多個測試回合或多個使用者所取得的程式碼涵蓋範圍資料予以合併。 您也可以將合併程式碼涵蓋範圍資料的結果儲存起來,然後再次匯入。 下列章節說明使用程式碼涵蓋範圍資料的方式。
合併測試結果的限制
下列清單指出您在合併及匯入涵蓋範圍資料時,最常碰到的限制:
匯入 XML 資料:如果您從 XML 檔案匯入程式碼涵蓋範圍資料,則只會看到程式碼行涵蓋範圍的統計資料,而非程式碼區塊涵蓋範圍的統計資料。 如需詳細資訊,請參閱匯出和匯入已合併的測試結果。
合併來自測試回合的資料:如果您合併包含 ASP.NET 測試回合在內的測試結果,[程式碼涵蓋範圍結果] 視窗將會在包含個別計算的個別節點中,顯示 ASP.NET 成品的資料。 如需詳細資訊,請參閱合併來自 ASP.NET 測試結果的資料。
重新編譯測試回合之間的程式碼:如果您重新編譯測試回合之間的產品程式碼,然後嘗試合併這些結果,則合併可能會失敗。 如需詳細資訊,請參閱匯入程式碼涵蓋範圍資料檔案。
匯出和匯入已合併的測試結果
當您合併測試結果之後,可以將合併作業的結果匯出為 XML 檔予以儲存。 如需如何匯出的詳細資訊,請參閱 HOW TO:匯出測試結果。
此 XML 檔會包含所有合併的程式碼涵蓋範圍資料,只要您再次匯入該檔案即可檢視那些資料。 資料中包含程式碼行的統計資料和程式碼區塊的統計資料。
注意事項 |
---|
您可以設定 [程式碼涵蓋範圍] 視窗的資料行,以顯示程式碼行與程式碼區塊的不同資料,例如測試期間所涵蓋之程式碼行的百分比、未涵蓋的百分比,以及部分涵蓋的百分比。 |
不過,如果您重新匯入這個 XML 檔,並將它與其他程式碼涵蓋範圍資料合併,則只會保留程式碼行涵蓋範圍的統計資料,而不會保留程式碼區塊涵蓋範圍的統計資料。
合併來自 ASP.NET 測試結果的資料
您可以合併含有一個或多個 ASP.NET 測試回合的結果,但是 [程式碼涵蓋範圍結果] 視窗會在 [合併結果] 下以個別節點顯示 ASP.NET 資料,而不會以單一、合併的節點顯示。 也就是說,雖然它會顯示來自所有選取之測試回合 (包括含有 ASP.NET 測試的回合) 的資料,但是不會針對合併 ASP.NET 程式碼涵蓋範圍資料執行統計計算。 這表示它會以個別節點顯示 ASP.NET 測試之每一個測試回合的資料,而不是合併在一個節點之下。
這個限制僅適用於 ASP.NET 成品。 在 ASP.NET 測試回合期間,在測試其他二進位檔案時可以收集程式碼涵蓋範圍資料,包括您的 ASP.NET 專案所參考的 DLL 和已加入至 ASP.NET 專案的組件。 在此狀況下,特定二進位檔案的程式碼涵蓋範圍資料會以單一、合併的節點顯示在 [合併結果] 之下。
匯入程式碼涵蓋範圍資料檔案
當收集了程式碼涵蓋範圍資料後,該資料會以其原本格式儲存在以 .coverage 為副檔名的檔案中。 當您在測試回合之後檢視程式碼涵蓋範圍資料時,Visual Studio 會開啟結果的 .coverage 檔予以顯示。 而且,Visual Studio 與 .coverage 副檔名會產生關聯。 這表示如果您在 Windows 檔案總管中按兩下該檔案,它會自動以 Visual Studio 開啟。
只有當您明確地匯出測試結果資料 (包括程式碼涵蓋範圍資料) 時,它才會以 XML 格式儲存。 將程式碼涵蓋範圍資料匯出為 XML 檔的唯一理由,是為了儲存合併多個程式碼涵蓋範圍結果的結果。
您可以使用 [程式碼涵蓋範圍結果] 視窗工具列上的 [匯入] 按鈕,匯入 .coverage 檔案。 若您執行此作業,請注意下列事項:
若要開啟 .coverage 檔案,Visual Studio 必須能夠在磁碟上找到檢測的組件及其程式偵錯資料庫檔案 (副檔名為 .pdb)。
在匯入這種檔案類型時,Visual Studio 會搜尋含有 .coverage 檔案的目錄,以及含有測試之組件的目錄。 為了執行此作業,Visual Studio 會使用 _NT_SYMBOL_PATH 和 VSCOVER_BINPATH 變數。 如果 _NT_SYMBOL_PATH 變數設定為含有符號的目錄,而 VSCOVER_BINPATH 設定為含有組件的目錄,則 Visual Studio 可以找到檔案並開啟 .coverage 檔案。 但是如果 Visual Studio 在上述路徑中找不到符號或組件,就無法開啟 .coverage 檔案。 了解這些路徑和變數設定的重要性,有助於您嘗試直接匯入 .coverage 檔案。
含有測試結果的 XML 檔並不會有這個動作。 XML 檔是獨立的 (Self-Contained),而且不需要同時開啟組件或 .pdb 檔。
如果您匯入多個 .coverage 檔案,那麼在程式碼區塊和程式碼行中都可以看到統計資料。 不過,如果您同時以兩種檔案格式 (.coverage 與 XML) 匯入程式碼涵蓋資料,則只會看到程式碼行涵蓋範圍的統計資料,而沒有程式碼區塊涵蓋範圍。