【问题标题】:Incremental .NET code coverage tool?增量 .NET 代码覆盖率工具?
【发布时间】:2009-02-12 19:52:37
【问题描述】:

我正在寻找一种工具(最好是免费的)来分析我们的 C# 解决方案的增量代码覆盖率。我的意思是我不想知道所有代码甚至命名空间的总代码覆盖率是多少,而只想知道自上次签入以来更改的新代码行或可能更改的代码行。 (我们使用 subversion 进行源代码控制。)

我想将此工具称为我们自动构建过程的一部分,并在有人签入代码覆盖率低于 X% 的新代码时进行报告。

有没有人知道有什么工具可以做到这一点?

谢谢。

【问题讨论】:

    标签: c# .net unit-testing testing build-automation


    【解决方案1】:

    NDepend 拥有以下优势:

    NDepend 从 NCover™ 和 Visual Studio Team System™ 收集代码覆盖率数据。由此 数据,NDepend 推断方法、类型、命名空间和程序集的一些指标: PercentageCoverage、NbLinesOfCodeCovered、NbLinesOfCodeNotCovered 和 BranchCoverage (仅来自 NCover)。

    这些指标可以与其他 NDepend 功能结合使用。例如你可以 知道自上次发布以来添加或重构了哪些代码并且不彻底 被测试覆盖。您可以编写一个 CQL 约束来不断检查一组 课程被 100% 覆盖。您可以列出哪些复杂方法需要更多测试。

    我似乎记得 NDepend 能够与早期构建的数据进行比较,因此看起来 NDepend 和 NCover 的组合可以解决问题。可能。不过自己没试过。 .)

    【讨论】:

      【解决方案2】:

      根据 .Net 的版本,您可以免费使用 NCover。但是,如果您使用的是较新版本的 .net,它就不会那么便宜了。您可能仍然需要编写自己的样式表来解析 NCover 的结果,以便具体了解您的要求。

      除此之外,除非您想自己编写,否则我没有听说过或见过其他工具可以执行此操作。

      NCover 基本上使用 .Net Profiling API,因此理论上您也可以这样做。

      【讨论】:

      • Partcover (sourceforge.net/projects/partcover) 是免费的,适用于最新的运行时版本,并输出与 NCover 相同的数据。 OP 仍然需要挖掘这些数据以获取覆盖率低的“新代码”。
      • 太棒了,我得看看那个项目。我们实际上在工作中有 nCover,但如果家里有类似的东西就好了。
      【解决方案3】:

      我使用PartCover 来分析我的单元测试以获得良好的效果。对于您要查找的数据,您可以使用控制台工具并从报告 xml 中提取 visitlen 计数。

      【讨论】:

        【解决方案4】:

        除了 Rythmis 的答案之外,我还提供了这篇博文,详细解释了 NDepend 与 NCover 或 VSTS 覆盖如何结合来回答这个问题: Are you sure added and refactored code is covered by tests?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-10-23
          • 2018-10-14
          • 2018-01-11
          • 2016-07-08
          • 2011-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多