我正在寻找一种分析C#解决方案的增量代码覆盖率的工具(最好是免费的)。我的意思是,我不想知道所有代码甚至命名空间的总代码覆盖率是多少,而只是新代码行或自上次签入后更改的代码行。 (我们使用subversion进行源代码控制。)
我想将此工具称为自动构建过程的一部分,并在有人检查代码覆盖率低于X%的新代码时报告。
有谁知道有一个工具可以实现这个目标吗?
感谢。
答案 0 :(得分:3)
NDepend拥有以下内容:
NDepend从NCover™和Visual Studio Team System™收集代码覆盖率数据。由此 数据,NDepend在方法,类型,命名空间和程序集中推断出一些指标: PercentageCoverage,NbLinesOfCodeCovered,NbLinesOfCodeNotCovered和BranchCoverage (仅限NCover)。
这些指标可以与其他NDepend功能一起使用。例如,你可以 知道自上次发布以来添加或重构的代码并不彻底 测试覆盖。您可以编写一个CQL约束来连续检查一组 课程100%覆盖。您可以列出哪些复杂方法需要更多测试。
我似乎记得NDepend能够与早期版本的数据进行比较,因此看起来NDepend和NCover 的组合可能可以做到这一点。虽然没有尝试过。 。)
答案 1 :(得分:0)
根据.Net的版本,您可以免费使用NCover。但是,如果您使用的是较新版本的.net,那就不那么便宜了。你可能仍然需要编写自己的样式表来解析NCover的结果,以明确提出你的要求。
除此之外,我没有听到或看到过其他工具,除非你想自己写。
NCover基本上使用.Net Profiling API,理论上你也可以这样做。
答案 2 :(得分:0)
我使用PartCover来分析我的单元测试以获得良好的效果。对于您要查找的数据,您可以使用控制台工具从报告xml中提取visit
和len
计数。
答案 3 :(得分:0)
除了Rythmis的回答之外,我还提供了这篇博文,详细解释了NDepend与NCover或VSTS报道如何回答这个问题: Are you sure added and refactored code is covered by tests?