无法生成(有意义的)覆盖率报告

时间:2014-06-17 12:46:54

标签: nunit teamcity code-coverage dotcover

我正在经历配置TeamCity的痛苦,而且我已经达到了生成报告以覆盖我的代码的程度。

当测试运行(失败,成功并省略)时,软件会生成一个XML文件,其中所有三个项都等于零。尽管在它们旁边进行了(大量)测试,但在TC中检查报告显示0%的覆盖率。它看起来如下。

Classes: 0% 0/46    Methods: 0% 0/380   Statements: 0% 0/1533  
Diff:    0%         Diff: 0%            Diff: 0%

或者与完整报告一样。

Beep        0% (0/1)    0% (0/1)    0% (0/1)  
Beep.API    0% (0/6)    0% (0/64)   0% (0/242)  
Beep.DAL    0% (0/6)    0% (0/49)   0% (0/362)  
...

现在,假设我像一个迟钝的香蕉一样慢(鉴于我在TeamCity中的能力不足) - 我可能忘记做什么(或者做了不必要的事情)?我该如何排除故障?!

我试图尽可能地使用默认值。与TeamCity捆绑在一起的是NUnit,DotCover也是如此。在我当地的环境中,我得到的覆盖范围当然是(至少部分)。

在仔细检查构建日志后,我发现了以下消息。

  

未检测到涵盖的代码。问题可能是由以下原因之一引起的:
  1.包含/排除模式不正确
  2.编译程序集没有调试信息   3. .pdb文件不可用   4.为MSTest启用Visual Studio代码覆盖率   5. .testrunco​​nfig用于MSTest和Visual Studio代码覆盖未被禁用(CodeCoverage部分使用enable =" true"存在)

(1)不应该是一个问题,因为我已经使用过:

+:assembly=*  
-:assembly=*.Test

(2)和(3)不应该是一个问题,因为我正在编译以释放配置 - 不应该预期PDB或调试信息。

(4)和(5)不应该是一个问题,因为我没有在VS中启用类似的东西。

或者我错过了一些重要的事情?

1 个答案:

答案 0 :(得分:1)

您是否正在使用JetBrains dotCover进行报道?

您在哪里阅读过滤器的这种语法?

请尝试仅排除:

-:*.Test

没有assembly关键字。

编辑:在最糟糕的情况下,尝试使用artefact和快照依赖关系重新创建配置。

请按照http://log.ld.si/post/teamcity-dependencies-101上的教程了解如何创建依赖关系,然后重试。