Nunit Can';t生成(有意义的)覆盖率报告
我正在经历配置TeamCity的阵痛,现在我想要生成一个报告来覆盖我的代码 当测试运行时(失败、成功和省略),软件生成一个XML文件,其中所有三项都等于零。在TC中检查报告显示0%的覆盖率,尽管旁边有(大量)测试。情况如下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%
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服务器。请提供更多提示,至少是关于如何解决这个问题的提示……您能提供这个步骤的构建日志吗?