对于具有6个项目(类库和wcf服务)的visual studio解决方案,我添加了一个带有一个测试的新Test项目,只有一行Assert.AreEqual(1,1)。 OpenCover显示100%覆盖率(100%序列和100%分支)。
no main manifest attribute
只有当我在测试中从其他项目中实例化一个类时,覆盖率才会下降到0.1%。
看起来如果没有加载dll,OpenCover无法计算其代码覆盖率。
现在的问题是,如果添加了一个新的类库并且它从未在单元测试中实例化,OpenCover是否会在计算覆盖率指标时忽略该dll。
这很重要,因为我们有一个分布式团队,开发人员可能只是创建一个类库,而不会为它编写测试。它最终会出现在代码审查中,但OpenCover可以配置为检测这种情况。
答案 0 :(得分:1)
看起来如果没有加载dll,OpenCover无法计算其代码覆盖率。
这是预期的行为
现在的问题是,如果添加了一个新的类库并且它从未在单元测试中实例化,OpenCover是否会在计算覆盖率指标时忽略该数据库。
它不会忽略它,运行时不加载程序集,因此OpenCover看不到它。
它最终会出现在代码审核中,但可以配置OpenCover来检测这种情况。
不是这样,但你可以写一个试图加载其文件夹中的每个.dll的测试。这将导致它加载,OpenCover将看到它(假设pdb可用,过滤器允许等等)