.NET - 确定哪些测试用例涵盖了一个方法

时间:2011-12-07 13:53:46

标签: .net code-coverage ncover

我想知道涵盖特定方法的测试。但是,NCover不提供此信息。我不想使用VSTS,因为我的代码不在TFS中。 在.NET中有没有办法/工具呢?

2 个答案:

答案 0 :(得分:1)

基本上,您需要做的是为每个测试运行一次测试覆盖率工具,为该测试生成覆盖矢量。如果您有数百个测试,则可以单独收集每个测试的覆盖范围。

然后,如果覆盖矢量N覆盖一个方法,则测试N导致该覆盖。

我不知道NCover是否/如何将NCover交叉引用回到与方法源代码对应的行范围。

对于我们的C# Test Coverage Tool,仪器工具为每个覆盖测试点生成行号范围,并在每个方法的开头插入一个测试点。因此,如果您知道文件中方法的行号,则可以从技术上定位条目覆盖点,从而确定构成方法的行范围,从而确定方法中的所有测试覆盖点。使用这样的列表,可以直接计算测试覆盖率向量是否已经达到这些点。因此,我们的工具具有提供此数据所需的信息,尽管没有详细记录。你可以 请向我们索取更多文档或帮助我们做到这一点。

答案 1 :(得分:0)

dotCover我认为在UI中提供了这种支持,但我不确定这些信息是否可以从构建机器获得。

OpenCover在其中一个分支上正在进行中 - 这是该项目的original aims之一,并推动了OpenCover的设计,以便通过一次测试实现这一目标 - 敬请期待......

最后,当Ira提到您可以单独运行测试并使用大多数覆盖工具(例如NCoverPartCoverOpenCover,......)从执行的单个测试中获得覆盖率使用NUnit / MSTest(选择插入测试工具),但您也可以了解任何设置/拆卸操作中发生的任何事情。