从TeamCity运行时,dotCover统计信息出现错误

4
我们有许多通过TeamCity构建和运行测试的项目。对于这些项目,使用dotCover来计算代码覆盖率。
在某些情况下,它会将行数重复计算一次,因此仅显示一半的覆盖范围。
我们最简单的一个示例是一个命名空间,其中只有一个类。这个类只是一个包含6个常量列表,因此它具有6个公共静态属性。
当我们查看代码时,它显示所有6行都是绿色的。
但在统计数据中,它报告12行,因为只有(全部)6行进行了测试,覆盖率为50%。
我们并不是在所有项目或项目中的所有DLL上都遇到这个问题,我无法确定任何模式。
有人知道可能是什么原因引起了这个问题吗?

我有点晚了,但如果你还在遇到这个问题,你使用的是哪个版本的TeamCity和哪个单元测试框架? - Jura Gorohovsky
1个回答

1
我刚遇到了这个问题(teamcity 7.1.5,内置的dotcover,msunit测试框架)。
对我来说,原因是在单个构建步骤中测试了多个程序集。Assembly1和Assembly2都使用了Assembly3,而正是Assembly3出现了这个问题--如问题描述的那样,Assembly3的覆盖率只有应有的一半。
解决方案:创建两个单独的构建步骤,一个用于测试Assembly1,另一个用于测试Assembly2。现在我不再遇到这个问题,最终结果是正确的;所有测试仍然运行,并且代码覆盖率结果准确。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接