首页 > 解决方案 > 本地机器上的 VSTS 构建代理不提供代码覆盖率数据

问题描述

我对 VSTS 构建代理有疑问,因为当我在本地运行它时,我似乎无法从中生成代码覆盖率信息。构建计划是默认的:获取源、构建、执行测试程序集、创建构建工件等。在 中Test assemblies stepCode coverage enabled复选框被选中。

当我使用Hosted VS2017代理执行它时,该Code coverage选项卡会显示一个下载结果的链接,并且相关图表也可以显示该数据。

我从-- --下载并安装了构建代理。安装后,我使用它排队构建。它构建良好,但选项卡显示以下消息:VSTS main pageProject settingsAgent poolsCode coverage

没有可用的代码覆盖率数据。
通过构建管道中使用的测试框架(例如 JUnit、Visual Studio Test 或 xUnit)启用代码覆盖率。

万一这很重要,我使用xUnitxunit.runner.visualstudio在测试项目中引用了该包。

我的问题是:我应该在我的设置中修改什么以启用本地构建代理的代码覆盖率信息?

标签: azure-devopscode-coverage

解决方案


托管代理已安装 Visual Studio Enterprise 。Visual Studio Enterprise 是使用 VsTest 收集代码覆盖率的先决条件。

Visual Studio 功能矩阵: https ://visualstudio.microsoft.com/vs/compare/在此处输入图像描述

如果您的本地系统没有安装 Visual Studio Enterprise,那么您在该计算机上没有所需的位或所需的许可证来使用 Visual Studio 工具收集代码覆盖率(即使您通过其他手段,如测试代理安装)。

您可以自由使用其他覆盖工具,例如 dotCover、Clover 等,但您需要自己配置这些工具。

我仔细检查了微软。Visual Studio Test Agent 是 Visual Studio Test Professional 和 Visual Studio Enterprise 的插件,并在这两个 SKU/订阅下获得许可。

Visual Studio Enterprise 是唯一受支持的 SKU/订阅,它允许您深入了解测试结果并了解它们,而不是汇总数字。


推荐阅读