C# 在Visual studio之外查看代码覆盖率结果

C# 在Visual studio之外查看代码覆盖率结果,c#,code-coverage,code-analysis,report,C#,Code Coverage,Code Analysis,Report,我有一些单元测试,还有一些代码覆盖率数据。现在,我希望能够在VisualStudio之外(比如在web浏览器中)查看代码覆盖率数据。但是,当我将代码覆盖率导出到xml文件时,我不能对它做任何事情。有读者在那里读这个吗?我是否必须编写一个xml解析器,然后以我想要的方式显示它(这似乎是一种浪费,因为visual studio已经这样做了。)将代码覆盖率结果的屏幕截图作为“报告”似乎有点愚蠢 建议?我使用NCover完成所有代码覆盖,您可以非常轻松地导出结果我不能说导出的XML的内容,但我希望它包含

我有一些单元测试,还有一些代码覆盖率数据。现在,我希望能够在VisualStudio之外(比如在web浏览器中)查看代码覆盖率数据。但是,当我将代码覆盖率导出到xml文件时,我不能对它做任何事情。有读者在那里读这个吗?我是否必须编写一个xml解析器,然后以我想要的方式显示它(这似乎是一种浪费,因为visual studio已经这样做了。)将代码覆盖率结果的屏幕截图作为“报告”似乎有点愚蠢
建议?

我使用NCover完成所有代码覆盖,您可以非常轻松地导出结果

我不能说导出的XML的内容,但我希望它包含您的覆盖数据作为摘要

如果希望在web浏览器页面中看到这样的XML数据,通常要做的事情是通过编写和运行自定义XSLT脚本将其转换为HTML。这可能会得到包含数据的HTML文本和表格


如果您想将覆盖率数据视为源代码上的装饰,我认为您有一个更难的问题。

您可以使用工具NDepend并从NCover、dotCover或Visual Studio coverage导入。该工具可以在彩色树状图中显示。这个特性对于浏览测试是否覆盖了代码的哪一部分特别有用

您还可以连续编写和应用,如:

//从现在起,所有添加或重构的类型都应该100%被测试覆盖
JustMyCode中t的warnif计数>0。类型,其中
//匹配自基线以来新的或修改的方法以进行比较。。。
(t.WasAdded()| | t.CodeWasChanged())&&
//…测试未100%覆盖的
t、 百分覆盖率<100
let MethodScupRit=t.Methods.Where(m=>m.PercentageCoverage<100)
选择新{t,t.PercentageCoverage,methodsCulprit}
……或者:

通过覆盖率的面板搜索可以在LINQ上生成这样的代码查询,并立即显示匹配的代码元素:


此外,该工具还可以生成一个显示违反代码规则或代码查询结果的模板。

可能会有所帮助:您可以在“代码覆盖率结果”窗格中打开所有覆盖率数据,并将其复制并粘贴到Excel…

有一个名为Visual coverage()的工具。它将.coverage文件作为输入,并可以将其导出为clover或html


github上的页面显示了如何执行,如果您感兴趣,可以查看代码…

此工具可以从覆盖率文件快速生成Html报告。工作非常好,不需要复杂的活动,可以轻松地包含在构建过程中。

现在您可以使用dotnet工具以html格式生成报告

dotnet tool install -g dotnet-reportgenerator-globaltool

来源:

这不适用于VisualStudio专业,代码覆盖功能不包括在这里,需要知道,视觉覆盖不能为C++项目输出正确的值。
dotnet tool install -g dotnet-reportgenerator-globaltool
reportgenerator
"-reports:Path\To\TestProject\TestResults\{guid}\coverage.cobertura.xml"
"-targetdir:coveragereport"
-reporttypes:Html