Nunit Can';t生成(有意义的)覆盖率报告

Nunit Can';t生成(有意义的)覆盖率报告,nunit,teamcity,code-coverage,dotcover,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%

我正在经历配置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的能力有限)——我会忘记做什么(或者做了不必要的事)?我怎样才能排除故障

我正在尽可能地使用默认值。和DotCover一样,与TeamCity捆绑在一起的是NUnit。当然,在我当地的环境中,我得到的保险是(至少部分)填补的

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

未检测到覆盖代码。该问题可能由以下原因之一引起:
1.包含/排除模式不正确
2.编译程序集时没有调试信息
3.pdb文件不可用
4.已为MSTest启用Visual Studio代码覆盖率
5.testrunconfig用于MSTest,并且未禁用Visual Studio代码覆盖率(存在带有enable=“true”的CodeCoverage部分)

(1) 应该没问题,因为我用过:

+:assembly=*  
-:assembly=*.Test
(2) (3)不应该是问题,因为我正在编译以发布配置-不应该期望任何PDB或调试信息

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


还是我遗漏了一些重要的东西?

您是否使用JetBrains dotCover进行报道

您在哪里读到有关筛选器语法的信息

尝试仅排除以下项:

-:*.Test
没有
程序集
关键字

编辑:在最坏的情况下,尝试使用人工制品和快照依赖项重新创建配置


请按照有关如何创建依赖项的教程进行操作,然后重试。

是的,这是默认的dotCoverage,与TeamCity一起分发和捆绑。我们还尝试在该软件包上单独安装它。然而,在此之前,它停止了工作。这是有趣的部分——它确实起了作用。然后,由于一位初级同事的“嘿,我可以设置,哪里会出错-它总是可以恢复”态度,它停止了(可能无法证明)。该语法取自JetBrains页面上的某个地方,而且似乎也适用于另一家公司的TC服务器。请提供更多提示,至少是关于如何解决这个问题的提示……您能提供这个步骤的构建日志吗?