2016-03-07 75 views
1

對於具有6個項目(類庫& wcf服務)的Visual Studio解決方案,我只用一行Assert.AreEqual(1,1)添加一個測試項目。 OpenCover顯示100%的覆蓋率(100%序列和100%分支)。OpenCover顯示100%覆蓋率,沒有有效的測試

OpenCover.Console.exe -target:"nunit3-console.exe" "-targetargs:Services.nunit" -register:user -skipautoprops -mergebyhash 

只有當我在測試中的其他項目實例化一個類的覆蓋率下降到0.1%。

因此,看起來像是沒有加載dll,OpenCover無法計算其代碼覆蓋率。

現在的問題是,如果添加一個新的類庫,並且它從未在單元測試中實例化,OpenCover會在計算覆蓋率度量時忽略該dll。

這很重要,因爲我們有一個分佈式團隊,開發人員可能只是創建一個類庫,而不會爲其編寫測試。它最終顯示在代碼評論中,但可以配置OpenCover來檢測這種情況。

+0

看來您需要回到OpenCover的文檔。同時,在SharpDevelop中,OpenCover集成更易於使用,http://community.sharpdevelop.net/blogs/mattward/archive/2012/08/08/CodeCoverageWithOpenCover.aspx http://community.sharpdevelop.net/blogs/mattward /archive/2014/07/27/BranchCoverageWithOpenCover.aspx –

回答

1

因此,看起來像是如果沒有加載dll,OpenCover無法計算其代碼覆蓋率。

這是正常現象

現在的問題是,如果添加一個新的類庫,它是永遠不會在單元測試實例,威爾OpenCover忽略的dll在計算覆蓋度量。

它不會忽略它,運行時不加載程序集,因此OpenCover不會看到它。

它最終顯示在代碼評論中,但可以配置OpenCover來檢測這種情況。

不像現在這樣,但是您可以編寫一個測試,試圖將每個.dll加載到其文件夾中。這會導致它加載並且OpenCover會看到它(假設pdb可用並且過濾器允許它等等)

相關問題