我正在经历配置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. .testrunconfig用于MSTest和Visual Studio代码覆盖未被禁用(CodeCoverage部分使用enable =" true"存在)
(1)不应该是一个问题,因为我已经使用过:
+:assembly=*
-:assembly=*.Test
(2)和(3)不应该是一个问题,因为我正在编译以释放配置 - 不应该预期PDB或调试信息。
(4)和(5)不应该是一个问题,因为我没有在VS中启用类似的东西。
或者我错过了一些重要的事情?
答案 0 :(得分:1)
您是否正在使用JetBrains dotCover进行报道?
您在哪里阅读过滤器的这种语法?
请尝试仅排除:
-:*.Test
没有assembly
关键字。
编辑:在最糟糕的情况下,尝试使用artefact和快照依赖关系重新创建配置。
请按照http://log.ld.si/post/teamcity-dependencies-101上的教程了解如何创建依赖关系,然后重试。