2013-02-01 48 views
1

我突然開始變得以下異常,而我想在VS 2012上運行的代碼覆蓋率:運行的代碼覆蓋分析

異常被拋出:代碼覆蓋分析引擎拋出異常(S): 覆蓋率文件 「........覆蓋率」無效或損壞

任何解決方案/解決方法都將有所幫助。

+0

您是否正在爲整個解決方案或單元測試運行代碼覆蓋率?您的代碼覆蓋率是否仍在使用空單元測試的新項目中運行? –

+0

您是否嘗試刪除該文件並運行新的分析(對當前文件進行備份)? – Peter

+1

你的事件日誌中的任何內容顯示CodeCoverage.exe崩潰了?我還建議你安裝VSUpdate1,因爲我們已經做了一些額外的工作來改善這裏的一些角落案例。 – allen

回答

1

我在VS2010中看到過這個錯誤,至少可以說是令人沮喪的。這個錯誤很可能與一個或多個沒有正確「檢測」的程序集有關,從記憶中我記得它可以通過在測試設置中取消選擇「instrument assemblies in place」來解決。

關於「就地測試」,當代碼覆蓋率打開時,Visual Studio需要片刻才能在TestRun之前爲您的程序集重寫IL,以便它可以記錄IL的哪些部分被執行。 「原位檢測」以「.instr」擴展名創建組件的備份,在打開Profiler的情況下運行測試,然後在測試完成後用原始組件替換測試組件。當我看到這個錯誤時,好像原始文件無法恢復(可能被鎖定),並且在構建輸出文件夾中有幾個殘餘的「.instr」程序集。我的理論是,IDE試圖將覆蓋率數據關聯到原始程序集,但由於這種不匹配而失敗。

AFAIK,在本地查看覆蓋範圍時,沒有可見的差異來關閉儀器。

+0

該解決方案在VS2010中爲我工作。我一直在處理這個問題數月! – SouthShoreAK

0

我在VS 2012 Premium上遇到了這個錯誤。我通過應用VS Update 1來修復它,並且從此沒有看到它。