2008-09-23 78 views
3

任何人都經歷this VSTS Code Coverage "bug?「你有什麼建議嗎?VSTS代碼覆蓋錯誤?

我做的代碼覆蓋分析與Visual Studio,這通常是一件容易的事現在所包含的工具。不過,我有一個問題,我可以假設我有程序集A,B,C和D,並將它們全部標記爲覆蓋率分析,我運行測試並查看結果並找到包含A,B和C的報告 - 但沒有D.我調查並發現,沒有測試實際上在D中執行任何代碼(假設它是asp.net前端,我還沒有利用UI測試)。因爲沒有D的測試會導致D中缺少D報告總代碼覆蓋百分比和「未覆蓋的塊」是不正確的。

有誰知道我可以做以下哪一項?

  • 計算D中的總「塊數」,以便我可以手動調整覆蓋率報告以正確?
  • 獲取覆蓋率報告以自動顯示未覆蓋用於覆蓋但尚未測試的程序集的程序段數量?

儘管我希望測試覆蓋率有所提高我正在分析代碼庫中歷史時間點保存的覆蓋率報告。因此,我不想創建一個測試,在每個程序集中至少執行一個代碼塊,並通過運行測試重新計算測試覆蓋率。這將是一個相當耗時的工作,看起來像是一個簡單的問題。

回答

2

我碰到過這個,很煩人。在我的情況下,有一些dll沒有被覆蓋,所以我最終通過使用被覆蓋的dll信息除以它們的大小來估計我們的代碼庫的塊/ kb。然後當然要獲得未被覆蓋的dll的塊數,只需將您的平均值乘以dll的大小即可。這不是最準確的方法,但它可以讓你快速通過,並且可以通過計算已知的dll並與實際值進行比較來確定錯誤。如果您有大量計算的程序集,這很有幫助。

當然,你可以做一個LOC計數(忽略註釋),並在一個單一的LOC上畫一個大致相當於一個塊的LOC。如果我沒有記錯,那就相當準確,所以應該讓你更接近。

我知道強制報告未發現程序集的唯一方法是實際編寫一個加載程序集的測試(測試甚至不需要執行任何操作)。

+0

謝謝,我擔心沒有像您建議的那樣真正的解決方法,但希望它是這種情況。我希望這將在VS 10中發生變化。如果我組建一個覆蓋範圍,我希望它會出現在覆蓋報告中。現在我無法確定我的功能代碼庫的覆蓋範圍。 – 2008-09-25 05:29:48