在一个包含6个项目(类库和wcf服务)的visual解决方案中,我添加了一个带有一个测试的新测试项目,只有一行Assert.AreEqual(1,1)。OpenCover显示100%的覆盖率(100%的序列和100%的分支)。
OpenCover.Console.exe -target:"nunit3-console.exe" "-targetargs:Services.nunit" -register:user -skipautoprops -mergebyhash只有当我从测试中的其他项目实例化一个类时,覆盖率才下降到0.1 %。
因此,如果未加载dll,则OpenCover无法计算其代码覆盖率。
现在的问题是,如果添加了一个新类库,并且它从未在单元测试中被实例化,那么OpenCover会在计算覆盖率度量时忽略dll吗?
这一点很重要,因为我们有一个分布式团队,开发人员可能只是创建一个类库,而从不为它编写测试。它最终会出现在代码评审中,但是可以配置OpenCover来检测这种情况。
发布于 2016-03-07 11:05:35
因此,如果未加载dll,则OpenCover无法计算其代码覆盖率。
这是预期的行为
现在的问题是,如果添加了一个新类库,并且它从未在单元测试中被实例化,那么OpenCover会在计算覆盖率度量时忽略dll吗?
它不会忽略它,运行时不会加载程序集,因此OpenCover不会看到它。
它最终会出现在代码评审中,但是可以配置OpenCover来检测这种情况。
不像现在这样,但是您可以编写一个测试,尝试加载其文件夹中的每个.dll。这将导致它加载,OpenCover将看到它(假设pdb可用,过滤器允许它等等)
https://stackoverflow.com/questions/35837259
复制相似问题