在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在版本'时使用的路径?选中复选框?
答案 0 :(得分:0)
VsTest任务使用vswhere.exe来确定计算机中安装的VS的最新版本。您可以尝试运行vswhwere.exe并检查在C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ SQL文件夹中安装了哪个版本的VS,它是否高于其他版本,还要检查它是企业安装还是不。代码覆盖仅作为企业安装的一部分提供。
您将能够根据VSTest任务版本在代理工作文件夹中找到vswhere.exe,例如。 C:\ TEMP \代理\ 127Agent_work_tasks \ VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9 \ 2.3.19 \ vswhere.exe