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

这不是一个理想的解决方案,因为当我更新构建服务器时,这个位置可能会变得无效。我遇到的问题是,如果我选择'Version‘,我的构建服务器最终会使用这个位置的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使用的路径?
发布于 2018-02-22 21:04:24
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
https://stackoverflow.com/questions/48914786
复制相似问题