2008-09-23 56 views
3

任何人都经历this VSTS Code Coverage "bug?“你有什么建议吗?VSTS代码覆盖错误?

我做的代码覆盖分析与Visual Studio,这通常是一件容易的事现在所包含的工具。不过,我有一个问题,我可以假设我有程序集A,B,C和D,并将它们全部标记为覆盖率分析,我运行测试并查看结果并找到包含A,B和C的报告 - 但没有D.我调查并发现,没有测试实际上在D中执行任何代码(假设它是asp.net前端,我还没有利用UI测试)。因为没有D的测试会导致D中缺少D报告总代码覆盖百分比和“未覆盖的块”是不正确的。

有谁知道我可以做以下哪一项?

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

尽管我希望测试覆盖率有所提高我正在分析代码库中历史时间点保存的覆盖率报告。因此,我不想创建一个测试,在每个程序集中至少执行一个代码块,并通过运行测试重新计算测试覆盖率。这将是一个相当耗时的工作,看起来像是一个简单的问题。

回答

2

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

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

我知道强制报告未发现程序集的唯一方法是实际编写一个加载程序集的测试(测试甚至不需要执行任何操作)。

+0

谢谢,我担心没有像您建议的那样真正的解决方法,但希望它是这种情况。我希望这将在VS 10中发生变化。如果我组建一个覆盖范围,我希望它会出现在覆盖报告中。现在我无法确定我的功能代码库的覆盖范围。 – 2008-09-25 05:29:48