为什么 TFS 代理没有发现 VSTEST 功能

Why does TFS agent doesn't discover a VSTEST capability

我们有 TFS 2015 服务器和带有 Visual Studio 2017 Ultimate 的构建服务器。 TFS 代理无法检测 VisualStudio 或 VsTest 功能(它应该),但在手动添加时,仍然存在问题。

当涉及到 Visual Studio 测试步骤时,控制台显示以下错误并失败:

c:\AgentTest\tasks\VSTest.0.30\VSTest.ps1 
Unable to determine the location of vstest.console.exe

我手动添加了以下功能:

VisualStudio C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise VisualStudio_15.0 C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise

VisualStudio_IDE C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE

VisualStudio_IDE_15.0 C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE

VS150COMNTOOLS C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\Tools\

VSTest C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow

VSTest_15.0 C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow

这是我的 Visual Studio 测试设置:

我可以重现此问题,TFS 2015 代理无法识别 VStest 和其他一些 2017 相关功能。

根据测试,TFS 2015 应该不支持 2017 VStest。

根据这个Github discussion,核心问题似乎是 Visual Studio 测试 任务需要更新以支持 VS 2017。

在TFS 2017和VSTS中,我们可以指定vstest.console.exe的绝对路径让它工作(详见this article),但是在TFS 2015中我们不能指定路径在任务,不支持

所以,如果要使用Vstest,可以安装VS 2015,或者升级到TFS 2017或更高版本。

供您参考的类似主题:https://social.msdn.microsoft.com/Forums/vstudio/en-US/1f9992f3-20b6-437a-855d-ccd67ff2298e/using-tfs-2015-with-build-agent-and-visual-studio-2017?forum=tfsadmin