【问题标题】:Code coverage not working TFS build代码覆盖率不起作用 TFS 构建
【发布时间】:2016-08-22 12:36:21
【问题描述】:

我已在 TFS 中的项目的构建定义中启用代码覆盖。

它正在按预期构建,单元测试也在运行,但代码覆盖率显示“没有可用的构建覆盖率数据”,请参见下面的屏幕截图。

感谢任何帮助。

【问题讨论】:

  • 对不起,如果这对您来说是一个愚蠢的问题。但是您没有提及您的许可证版本。据我了解,MS Code Coverage 仅适用于企业版的 VS/TFS。我总是觉得这个功能可以打勾,但在专业版中没有显示结果,这很令人困惑。
  • @RobertK 感谢您的反馈。我们的 TFS 版本显示“Team Foundation Server 2015”。我认为我们没有 TFS 的企业版。
  • 我认为 TFS 上没有教授/企业风格。但它的构建代理至少需要一个企业版的 Visual Studio。为了克服这个问题,我使用了开源替代品OpenCover。我写了一个小的“学习项目”来将它与 TFS 2015 集成。如果你有兴趣尝试一下和/或加入我;-):github.com/RobertK66/vsts-opencover
  • @RobertK,非常感谢您的提议。只要我有空闲时间,我就会尝试一下。 :-)
  • @mahfuz01 - 我有完全相同的问题。您找到解决方案了吗?

标签: code-coverage tfsbuild tfs-2015


【解决方案1】:

覆盖结果只是一个带有*.coverage扩展名的文件。

所以启用Code Coverage Enabled 复选框是不够的。 此复选框可以计算代码覆盖率并生成此文件。

但是,要将此*.coverage 文件附加到构建,您还需要启用Reporting Options 部分下的Upload Test Attachments 复选框。 请看附图。

此复选框完全启用您所需要的,它将与构建一起发布覆盖结果。

最终的日志应该是这样的:

2016-10-17T15:47:03.6834453Z Attachments:
2016-10-17T15:47:03.6834453Z   TFSBUILD 2016-10-17 11_46_53.coverage 
2016-10-17T15:47:03.6834453Z Total tests: Passed: Failed: Skipped:
2016-10-17T15:47:03.6834453Z Test Run Successful.

【讨论】:

    【解决方案2】:

    在我这边测试一下,代码覆盖率按预期可用。我想分享我的步骤供您参考:

    1. 创建一个默认的 Visual Studio 模板。

    2. Visual Studio Build 任务中指定Solution,并在Visual Studio Test 任务中勾选Code Coverage Enabled。请看下面的截图:

    其他设置不变。

    1. 队列构建,然后我可以在构建摘要中看到代码覆盖率:

    顺便说一句,我正在使用 TFS 2015 Update2。

    【讨论】:

    • 嗨@cece-msft 这正是我为我的项目所做的。指定解决方案路径,甚至选择运行 test.dll。我在某处发现测试必须是 MSTest 而不是 nUnit 或 xUnit 测试。我还将所有测试都转换为 MSTest。仍然没有运气。有点沮丧
    • 你在测试什么样的项目?仅 .net 和 C++ 项目支持启用代码覆盖。您可以尝试创建一个轻项目来测试此功能。
    • 嗨@cece-msft 我的解决方案是一个 MVC 4.5 Web 应用程序,但是单元测试是在业务层(类库)上完成的。我不认为这是代码覆盖率的问题,因为我可以使用 resharper 来获取代码覆盖率,但项目经理也想在 tfs 网络视图上查看它。
    【解决方案3】:

    问题可以通过勾选如图所示的两个复选框来解决,仅启用代码覆盖率是不够的,您还需要在测试模板中勾选上传测试附件。

    enter image description here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多