【发布时间】:2016-03-07 19:05:35
【问题描述】:
对于具有 6 个项目(类库和 wcf 服务)的 Visual Studio 解决方案,我添加了一个带有一个测试的新测试项目,其中只有一行 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 来检测这种情况。
【问题讨论】:
-
看来你需要回到 OpenCover 的文档。同时,在 SharpDevelop 中,OpenCover 集成更易于使用,community.sharpdevelop.net/blogs/mattward/archive/2012/08/08/…community.sharpdevelop.net/blogs/mattward/archive/2014/07/27/…
标签: c# nunit opencover nunit-3.0