VSTS代码覆盖率错误?

时间:2008-09-23 20:22:21

标签: visual-studio unit-testing code-coverage

有没有人见过this VSTS Code Coverage "bug?“你有什么建议吗?

我正在使用Visual Studio进行代码覆盖率分析,现在使用所包含的工具通常是一项简单的任务。但是,我有一个我无法克服的问题。假设我有程序集A,B,C和D,并将它们全部标记为覆盖率分析。我运行测试并查看结果并查找包含A,B和C的报告 - 但不是D.我调查并发现没有测试实际执行D中的任何代码(假设它是asp.net前端和我还没有利用UI测试)。由于报告中没有D测试导致D丢失,因此总代码覆盖百分比和“未覆盖的块”不正确。

有谁知道我怎么能做以下任何一种情况?

  • 计算D中的总“块数”,以便我可以手动调整覆盖率报告是否正确?
  • 获取“覆盖率”报告以自动显示未覆盖的程序集的覆盖数量,这些程序集已覆盖但尚未进行测试?

虽然我确实希望测试覆盖率得到改善,但我正在分析代码库中历史时间点保存的覆盖率报告。因此,我不想创建一个只在每个程序集中执行至少1个代码块的测试,并通过运行测试来重新计算测试覆盖率。对于看起来像是一个简单问题的事情来说,这将是一个非常费时的工作。

1 个答案:

答案 0 :(得分:2)

我遇到过这一次,非常讨厌。在我的例子中,有一些dll没有被覆盖,所以我最终通过使用覆盖的dll信息除以它们的大小来估算代码库的块/ kb。然后当然要获得未覆盖的dll的块数,您只需将平均值乘以dll的大小即可。这不是最准确的方法,但它可以让您快速完成,并且您可以通过计算已知的dll并与实际值进行比较来确定错误。如果您有大量计算的程序集,将会很有帮助。

当然,你可以做一个LOC计数(忽略注释)并在一个LOC上大致相当于一个块。如果我没记错,那就相当准确了,所以应该让你更接近。

我知道强制报告未覆盖程序集的唯一方法是实际编写一个加载程序集的测试(测试甚至不需要做任何事情)。