2010-11-09 110 views
3

我寫過一個程序,告訴我代碼覆蓋率結果文件中的所有DLL是否高於指定的代碼覆蓋百分比。如何讓Visual Studio顯示0%代碼覆蓋率的dll的代碼覆蓋率結果?

它的工作原理除了當一個DLL有0%的代碼覆蓋率,因爲0%的代碼覆蓋率DLL是不是在Visual Studio代碼覆蓋率結果文件中包含的所有偉大。

我訪問了儀器此代碼覆蓋率運行的DLL列表,但我寧願只是看代碼覆蓋率的文件,如果我能。

有沒有辦法讓Visual Studio中添加代碼覆蓋率結果的DLL,其中的代碼覆蓋率= 0%?

回答

3

完全披露:我在開發此功能的團隊中。

不幸的是,這些信息並未出現在代碼覆蓋率文件中。當一個二進制文件被插入時,我們插入特殊的探測器來告訴我們它存在並且檢測每個代碼塊何時被執行。

我們不保存在目標進程中的DLL列表,所以我們只知道得到執行儀表的DLL(只是被儀器是不夠的)。

最簡單的解決方法就是您在問題中提到的內容。

感謝您的反饋,但我們會將其考慮在內。對不起,這裏有困難。

+0

感謝您的確切答案。這是一個非常不尋常的要求,所以我並不感到驚訝。 – user467384 2010-11-09 22:09:35

+0

我們沒有發現它非常不尋常,一個項目報道90%覆蓋率,但忘記添加8個項目到測試設置文件導致報告全部傾斜。 – jessehouwing 2012-02-29 20:21:41

+0

嗨@Chris請看看:http://stackoverflow.com/questions/24767377/visual-studio-2013-code-coverage-binaries-not-being-instrumented。我花了數十小時試圖弄清楚它爲什麼會發生。當然[this](http://blogs.msdn.com/b/allendm/archive/2012/06/05/troubleshooting-missing-data-in-code-coverage-results.aspx)不起作用 – abatishchev 2014-07-15 20:20:30

0

我們使用的技巧是添加一個測試項目與要求,在每個執行不外乎返回true,裝配特殊的公共靜態方法的特殊測試。這樣,該組件至少被擊中一次,並且一個班輪並不真正影響總覆蓋數據。

我使用反射來做到這一點在一些項目,現在我們只是加入CodeCoverageTest項目,每一個解決方案,並在每大會CodeCoverage.Ensure()方法。