【问题标题】:Change the location of vstest.console in TFS 2017 Build在 TFS 2017 Build 中更改 vstest.console 的位置
【发布时间】:2018-08-01 13:23:36
【问题描述】:

在 TFS 测试任务中,我知道我可以通过以下方式手动设置 vstest.console.exe 的位置:

这不是一个理想的解决方案,因为当我更新我的构建服务器时,这个位置可能会变得无效。我遇到的问题是,如果我选择“版本”,我的构建服务器最终会在此位置使用 vstest.console:

C:\Program Files (x86)\Microsoft Visual Studio\2017\ SQL\Common7\IDE\CommonExtensions\Microsoft\TestWindow

我猜这个 SQL 文件夹是安装在构建服务器上的 SQL Server Data Tools 文件夹。这个文件夹位置通常不是问题,vstest 运行我的单元测试并报告它们,但是,它不会生成代码覆盖率报告。我最初认为这是由于构建配置不正确,但是在验证构建设置正确并且服务器具有所有必要的依赖项之后,我开始寻找其他原因。我从其中一个构建中打开了 .trx 文件,发现 DataCollector 记录了一条消息,指出它找不到 CodeCoverage.exe。在进行了更多故障排除后,我将构建指向上图中显示的 vstest.console 的位置,并且一切(测试、代码覆盖率)都运行良好。这让我相信 vstest 期望路径:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Dynamic Code Coverage Tools 

相对于它的运行位置而存在,并且该目录(动态代码覆盖工具)在 SQL 文件夹中不存在。

有没有办法在选中“版本”复选框时更改 TFS 使用的路径?

【问题讨论】:

  • 哪个 TFS 版本?
  • 我认为这是 VsTest 任务中的一个错误,它应该首先查询具有代码覆盖率的版本,否则会采用不支持覆盖率的版本。请参阅此处创建的问题:github.com/Microsoft/vsts-tasks/issues/6495

标签: tfs azure-pipelines vstest


【解决方案1】:

VsTest 任务使用 vswhere.exe 来确定机器中安装的最新版本的 VS。能否尝试运行 vswhwere.exe 并检查安装在 C:\Program Files (x86)\Microsoft Visual Studio\2017\ SQL 文件夹中的 VS 版本,是否高于其他版本,同时检查它是企业安装还是不是。由于代码覆盖率仅作为企业安装的一部分提供。

您将能够根据 VSTest 任务版本在代理工作文件夹中找到 vswhere.exe,例如。 C:\Temp\Agents\127Agent_work_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.3.19\vswhere.exe

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2015-09-01
    相关资源
    最近更新 更多