Visual studio TFS 2013生成服务器上没有代码覆盖率结果

Visual studio TFS 2013生成服务器上没有代码覆盖率结果,visual-studio,tfs,code-coverage,build-server,Visual Studio,Tfs,Code Coverage,Build Server,因此,我们的TFS 2013构建除了报告代码覆盖率之外,其他一切都做得很正确。我在这里看到过类似的问题,例如,但我们已经尝试了建议的修复,但没有结果 更新1-我们已采取更多步骤尝试解决此问题;以下是完整的列表: 已确保在生成服务器上安装Visual Studio Ultimate 已尝试将生成定义的“CodeCoverageEnabled”以及“代码覆盖率已启用”设置设置设置为true 确保生成使用调试配置,并且正在为要测试的DLL生成PDB 添加了一个.runsettings文件,其中包含正

因此,我们的TFS 2013构建除了报告代码覆盖率之外,其他一切都做得很正确。我在这里看到过类似的问题,例如,但我们已经尝试了建议的修复,但没有结果

更新1-我们已采取更多步骤尝试解决此问题;以下是完整的列表:

  • 已确保在生成服务器上安装Visual Studio Ultimate
  • 已尝试将生成定义的“CodeCoverageEnabled”以及“代码覆盖率已启用”设置设置设置为true
  • 确保生成使用调试配置,并且正在为要测试的DLL生成PDB
  • 添加了一个.runsettings文件,其中包含正确的模块路径(在生成日志中验证模块路径的解释是否正确;如果我们故意将其格式错误,则会产生错误)
  • 签入.runsettings文件
  • 将生成定义设置为“自定义”,并指向.runsettings文件
构建过程本身运行良好。当我们在IDE中本地构建项目时,我们可以得到代码覆盖率结果。在构建服务器上,MSTest和NUnit测试项目都运行良好,我们看到了预期的通过/失败结果。“无代码覆盖结果”的信息仍然困扰着我们

更新2- 以下是我们在运行日志中看到的内容:


有人建议使用国产代码覆盖率计算器,但在TFS 2013上花费1.5亿美元,而在使用MSDN的Ultimate 2013上花费1.5亿美元,但仍然无法使用这一基本功能,这将是一种犯罪

将运行设置文件添加到源代码管理。将测试设置为“自定义”,并指向运行设置文件。有关使用.runsettings文件的更多信息,请访问msdn:

我遇到了相同的问题。我的问题是模块路径。MSDN示例建议您只需使用目标二进制文件的名称。这对我不起作用。然而,当我把这个名字命名为正则表达式时,它起了作用。我还将构建输出转储到一个文件夹中,以便找到pdb和其他参考文件。希望有帮助

<ModulePath>.*Administration\.dll.*</ModulePath>
*管理\.dll*

我正在使用Visual Studio online的本地生成服务器和.runsettings文件,我遇到了完全相同的问题

上面的技巧都没有帮助,所以我在托管的构建控制器上测试了构建脚本,它工作得很好,所以我决定问题一定是构建服务器本身


我在TFS配置工具中将生成服务帐户从“网络服务”更改为常规windows用户帐户,现在收集代码覆盖率。请注意,该用户将需要访问TFS构建目录。

我发现这个问题是因为我在本文中看到了一些特殊之处。(查找默认为60的“延迟”设置)

d。添加一个新参数“Delay”,输入如下所述的详细信息 名称–延迟,方向–输入,ArgumentType-Int32,默认值–60 延迟覆盖率检查需要此参数,以便生成代理填写所需的生成详细信息,此延迟因 系统到系统,在某些情况下可能根本不需要这样做


也许可以尝试在您正在使用的模板中添加一个“延迟”工作流程项……

我认为这肯定会起作用,但令人惊讶的是它没有起作用。我在这个问题上添加了一个我们到目前为止所做尝试的总结。当你说在ide上工作时,你是说在构建服务器上工作吗?您正在运行一个或两个测试运行吗?一个是mstest一个是nunit,然后看看你是否得到了mstest覆盖率,我的意思是我在visualstudio中得到了代码覆盖率结果,这可能不太相关。我有一个NUnit和一个MSTest项目,每个项目只有一个测试。他们构建服务器运行并报告成功/失败,只是没有代码覆盖率结果。我再次尝试使用指向.runsettings文件的“自定义”类型测试运行,并改为使用CodeCoverageEnabled=true。在代码覆盖率上仍然没有骰子。这是胡说八道。