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



我正在经历配置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. Include/exclude模式不正确
2. 编译程序集时没有调试信息
3. .pdb文件不可用
4. Visual Studio代码覆盖为MSTest启用
5. .testrunconfig用于MSTest和Visual Studio代码覆盖未禁用(CodeCoverage部分与enable="true"存在)

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

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

(2)和(3)应该不是问题,因为我正在编译发布配置-不应该期望PDB或调试信息。

(4)和(5)应该不是问题,因为我没有在vs中启用类似的功能。

还是我错过了重要的东西?

您是否使用JetBrains的dotCover进行覆盖?

你在哪里读到过滤器的语法?

尝试只排除:

-:*.Test

没有assembly关键字。

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

请按照http://log.ld.si/post/teamcity-dependencies-101上的教程创建依赖项,然后再试一次

最新更新