我们有许多通过TeamCity构建和运行测试的项目。对于这些项目,代码覆盖率是使用dotCover计算的。
在某些情况下,它计算两次行数,因此只显示一半的覆盖率。
我们有的最简单的例子是一个只有一个类的命名空间。这个类只是6个常量的列表。所以它有6个公共静态属性。
当我们查看代码时,它以绿色显示所有6行代码。
但在统计数据中,它报告了12行,因为只有6行进行了测试,覆盖率为50%。
我们在所有项目或项目中的所有DLL上都没有这个问题,我还不能确定任何模式。
有没有人知道是什么导致了这个问题?
发布于 2013-07-11 23:22:17
我正好遇到了这个问题( test ity7.1.5,内置的dotcover,msunit测试框架)。
对我来说,原因是我在一个构建步骤中测试了多个程序集。Assembly1和Assembly2都使用了Assembly3,而Assembly3就有这个问题--正如问题中所描述的那样,Assembly3的覆盖率恰好是它应该覆盖的一半。
解决方案:执行两个独立的构建步骤,一个用于测试Assembly1,另一个用于测试Assembly2。现在我不再遇到这个问题,最终结果正确出来了;测试仍然在运行,代码覆盖率结果是准确的。
https://stackoverflow.com/questions/8124285
复制相似问题