OpenCover显示100%覆盖率,没有有效测试

时间:2016-03-07 06:10:28

标签: c# nunit opencover nunit-3.0

对于具有6个项目(类库和wcf服务)的visual studio解决方案,我添加了一个带有一个测试的新Test项目,只有一行Assert.AreEqual(1,1)。 OpenCover显示100%覆盖率(100%序列和100%分支)。

no main manifest attribute

只有当我在测试中从其他项目中实例化一个类时,覆盖率才会下降到0.1%。

看起来如果没有加载dll,OpenCover无法计算其代码覆盖率。

现在的问题是,如果添加了一个新的类库并且它从未在单元测试中实例化,OpenCover是否会在计算覆盖率指标时忽略该dll。

这很重要,因为我们有一个分布式团队,开发人员可能只是创建一个类库,而不会为它编写测试。它最终会出现在代码审查中,但OpenCover可以配置为检测这种情况。

1 个答案:

答案 0 :(得分:1)

  

看起来如果没有加载dll,OpenCover无法计算其代码覆盖率。

这是预期的行为

  

现在的问题是,如果添加了一个新的类库并且它从未在单元测试中实例化,OpenCover是否会在计算覆盖率指标时忽略该数据库。

它不会忽略它,运行时不加载程序集,因此OpenCover看不到它。

  

它最终会出现在代码审核中,但可以配置OpenCover来检测这种情况。

不是这样,但你可以写一个试图加载其文件夹中的每个.dll的测试。这将导致它加载,OpenCover将看到它(假设pdb可用,过滤器允许等等)