TFS 2013 Build Server上没有代码覆盖率结果

时间:2014-08-14 22:22:29

标签: visual-studio tfs code-coverage tfs2013 build-server

因此,除报告代码覆盖率外,我们的TFS 2013版本可以正常运行。我在这里看到过类似的问题,例如TFS 2013 - No Code Coverage Results,但我们已经尝试了建议的修补程序但没有结果。

更新1 - 我们已采取更多措施尝试解决此问题;这里有完整的清单:

  • 确保在构建服务器上安装了Visual Studio Ultimate
  • 尝试设置构建定义" CodeCoverageEnabled"实现以及"代码覆盖率已启用"设置
  • 确保构建正在使用Debug配置,并且正在为要测试的DLL生成PDB
  • 添加了一个.runsettings文件,其中包含< CodeCoverage>下包含的正确ModulePath。 (在构建日志中验证模块路径被正确解释;如果我们故意使其格式错误,则会产生错误)
  • 签入.runsettings文件
  • 将构建定义设置为"自定义"并指向.runsettings文件

构建过程本身运行正常。当我们在IDE中本地构建项目时,我们可以获得代码覆盖率结果。在构建服务器上,MSTest和NUnit测试项目运行正常,我们按预期看到通过/未通过结果。 "无代码覆盖率结果"消息仍然困扰着我们。

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

有人在https://stackoverflow.com/a/16198120/141508建议使用自行开发的代码覆盖率计算器,但在2013年TFS上投入150亿美元,这是一种犯罪行为。使用MSDN的VS Ultimate 2013仍然没有这个基本功能正常工作。

4 个答案:

答案 0 :(得分:3)

将运行设置文件添加到源代码管理。将测试设置为自定义并指向运行设置文件。有关使用.runsettings文件的更多信息,请访问msdn:http://msdn.microsoft.com/en-us/library/jj159530.aspx

答案 1 :(得分:1)

我遇到了同样的问题。我的问题在于ModulePath。 MSDN示例建议您只使用目标二进制文件的名称。那不适合我。但是,当我将名称作为正则表达式时,它起作用了。我也将构建输出转储到一个文件夹中,以便找到pdb和其他引用文件。希望有所帮助。

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

答案 2 :(得分:1)

我正在使用带有Visual Studio Online的本地构建服务器和.runsettings文件,我遇到了完全相同的问题。

上面的技巧都没有帮助,所以我在托管构建控制器上测试了构建脚本并且工作正常,所以我认为问题必须是构建服务器本身。

更改了#34;网络服务&#34;的构建服务帐户。到TFS配置工具中的常规Windows用户帐户,现在收集代码覆盖率。请注意,此用户需要访问TFS构建目录。

答案 3 :(得分:0)

我发现了这个问题,因为我看到了这篇文章特有的内容。 (查找“延迟”设置,默认为60)。

d。添加一个新参数'Delay',输入如下所述的详细信息 名称 - 延迟,方向 - 输入,ArgumentType-Int32,默认值 - 60 此参数是延迟覆盖检查所必需的,因此构建代理填充了所需的构建详细信息,此延迟因此而异 系统到系统,在某些情况下可能根本不需要。

http://www.prowareness.com/blog/failing-build-on-insufficient-code-coverageblock-coverage-part-3/

也许尝试在您正在使用的模板中加入“延迟”工作流项目.......