我在TeamCity中为CI设置了一个项目,它显示了代码覆盖率的一些奇怪结果:
请注意类的重复。
查看其中一个类,突出显示的代码为"未涵盖"如下(它是该类中唯一的代码):
public abstract class BaseRepository<T> : BaseRepository<T, long> where T : class
{
protected BaseRepository(ISessionManager sessionManager)
: base(sessionManager)
{
//nothing in here.
}
}
所以问题就出现了:这个代码被覆盖,但我认为因为TeamCity计算了三次而覆盖范围只有一次,我的覆盖率达到了33%。 ..这是不正确的。
任何人都可以建议这里可能会发生什么,以及如何解决它?
答案 0 :(得分:3)
我遇到了从多个位置加载的重复测试容器dll文件的类似问题。
您需要检查测试运行器配置中的Run tests from
和Do not run tests from
部分,并找出dll多次加载的原因。就我而言,它是obj
个文件夹,我的Edit assembly files exclude list
现在看起来像是:
**\obj\**\*.dll
你得到了三倍,所以你可能需要找出更多要排除的位置。