【发布时间】: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