簡體   English   中英

在 Visual Studio 之外查看代碼覆蓋率結果

[英]Viewing Code Coverage Results outside of Visual studio

我進行了一些單元測試,並獲得了一些代碼覆蓋率數據。 現在,我希望能夠在 Visual Studio 之外(例如在 Web 瀏覽器中)查看代碼覆蓋率數據。 但是,當我將代碼覆蓋率導出到 xml 文件時,我無能為力。 有讀者嗎? 我是否必須編寫一個 xml 解析器,然后以我想要的方式顯示它(這似乎是一種浪費,因為 Visual Studio 已經這樣做了。)必須將我的代碼覆蓋率結果的屏幕截圖作為我的“報告”建議似乎有點傻?

這個工具https://github.com/danielpalme/ReportGenerator從覆蓋文件快速生成 Html 報告。 效果很好,不需要復雜的活動,可以很容易地包含在構建過​​程中。

有一個名為 Visual Coverage ( https://github.com/jsargiot/visual-coverage ) 的工具。 它需要一個 .coverage 文件作為輸入,並且可以將其導出為三葉草或 html。

github 上的頁面顯示了如何執行,如果您好奇,可以查看代碼...

您可以使用工具 NDepend 並可視化NCoverdotCoverVisual Studio 覆蓋率導入的代碼覆蓋率結果 該工具可以在彩色樹狀圖中顯示代碼覆蓋率與代碼行的關系 此功能對於一目了然地瀏覽哪些代碼部分被測試很好地覆蓋或未覆蓋特別有用。

NDepend 彩色樹狀圖代碼覆蓋率與代碼行數

您還可以編寫和應用通過 LINQ 查詢 (CQLinq) 編寫的連續代碼規則,例如:

從現在開始,所有添加或重構的類型都應該 100% 被測試覆蓋

// <Name>From now, all types added or refactored should be 100% covered by tests</Name>
warnif count > 0 from t in JustMyCode.Types where

  // Match methods new or modified since Baseline for Comparison...
  (t.WasAdded() || t.CodeWasChanged()) &&

  // ...that are not 100% covered by tests
  t.PercentageCoverage < 100

  let methodsCulprit = t.Methods.Where(m => m.PercentageCoverage < 100)

select new { t, t.PercentageCoverage, methodsCulprit }

...或者還有:

Search by Coverage面板可以通過 LINQ 生成這樣的代碼查詢,並立即顯示匹配的代碼元素:

按覆蓋范圍搜索方法

此外,該工具可以構建HTML/javascript 報告,顯示違反的代碼規則代碼查詢結果

現在您可以使用 dotnet 工具生成 html 報告

dotnet tool install -g dotnet-reportgenerator-globaltool
reportgenerator
"-reports:Path\To\TestProject\TestResults\{guid}\coverage.cobertura.xml"
"-targetdir:coveragereport"
-reporttypes:Html

來源: https : //docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-code-coverage?tabs=linux#generate-reports

可能有幫助:您可以在代碼覆蓋率結果窗格中打開所有覆蓋率數據並將其復制並粘貼到 Excel...

我不能說導出的 XML 的內容,但我希望它包含您的覆蓋數據作為摘要。

如果您想在 Web 瀏覽器頁面中看到這樣的 XML 數據,通常的做法是通過編寫和運行自定義 XSLT 腳本將其轉換為 HTML。 這可能會為您提供包含數據的 HTML 文本和表格。

如果您想將覆蓋數據視為強加在源代碼上的裝飾,我認為您有一個更難的問題。

我使用 NCover 來完成我所有的代碼覆蓋,你可以很容易地導出結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM