【发布时间】:2011-12-07 13:53:46
【问题描述】:
我想知道涵盖特定方法的测试。但是,NCover 不提供此信息。我不想使用 VSTS,因为我的代码不在 TFS 中。 .NET 中是否有任何方法/工具可以做到这一点?
【问题讨论】:
标签: .net code-coverage ncover
我想知道涵盖特定方法的测试。但是,NCover 不提供此信息。我不想使用 VSTS,因为我的代码不在 TFS 中。 .NET 中是否有任何方法/工具可以做到这一点?
【问题讨论】:
标签: .net code-coverage ncover
从根本上说,您需要为每个测试运行一次测试覆盖率工具,为该测试生成一个覆盖率向量。如果您有数百个测试,您可以分别收集每个测试的覆盖率。
如果覆盖向量 N 覆盖了一个方法,则测试 N 导致了该覆盖。
我不知道 NCover 是否/如何 NCover 可以交叉引用回对应于方法源代码的行范围。
对于我们的C# Test Coverage Tool,instrumenter 工具会为每个覆盖测试点生成行号范围,并且在每个方法的开头插入一个测试点。因此,如果您知道文件中方法的行号,则可以从技术上定位入口覆盖点,从而确定构成该方法的行范围,从而确定该方法中的所有测试覆盖点。使用这样的列表,可以直接计算测试覆盖向量是否达到了这些点。因此,我们的工具具有提供此数据所需的信息,尽管它没有得到很好的记录。你可以 向我们索取更多文件或帮助。
【讨论】:
dotCover 我相信在 UI 中提供了这种支持,但我不确定这些信息是否可以从构建机器获得。
OpenCover 的其中一个分支正在进行中 - 这是该项目的 original aims 之一,并推动了 OpenCover 的设计通过一次测试来实现这一目标 - 敬请期待。 .
最后,正如 Ira 提到的,您可以单独运行测试并从使用 NUnit/MSTest 执行的单个测试(插入选择的测试工具),但是您还将获得在任何设置/拆卸操作中发生的任何事情的覆盖范围。
【讨论】: