【发布时间】:2018-12-24 06:58:56
【问题描述】:
我正在致力于将自动化 UI 功能测试集成到非 XAML TFS 构建中。
我的构建定义指定了以下构建步骤: - 获取资源 - NuGet 安装程序 - 微软构建 - Windows 机器文件复制 - Visual Studio 测试代理部署 - 运行功能测试
前四个步骤成功完成。第 4 步(Windows 机器文件复制)将我们的测试项目应用程序文件夹内容从我们的构建服务器复制到另一个远程 VM,托管我们的测试代理。目的是在构建服务器上完成构建(如当前设置),然后将测试项目复制到测试代理服务器,部署测试代理并在测试 VM 上运行功能测试。
我在第 5 步(Visual Studio 测试代理部署)中遇到了问题;返回以下错误:
“[服务器名称]:5986”发生错误。详细信息:'连接到远程服务器 [server_name] 失败并显示以下错误消息:客户端无法连接到请求中指定的目标。验证目标上的服务是否正在运行并且正在接受请求。请查阅在目标(最常见的是 IIS 或 WinRM)上运行的 WS-Management 服务的日志和文档。如果目标是 WinRM 服务,在目标上运行以下命令来分析和配置 WinRM 服务:“winrm quickconfig”。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。如需疑难解答,请参阅https://aka.ms/remotevstest。
我对此错误的研究表明该问题与 PowerShell 远程处理有关,而不是与 TFS 构建有关(TFS 构建任务包装了要在远程 VM 上执行的 PowerShell 命令)。
我已根据错误消息建议检查并仔细检查了目标(测试代理)服务器上的 WinRM 服务; WinRM 服务已打开并配置为接受请求。我还按照建议运行了“winrm quickconfig”命令。问题依然存在。
我们的服务器在同一个域中。我拥有测试代理(远程)VM 的管理权限,但无权访问构建(本地)VM。
我已经为这个问题苦苦挣扎了一段时间;我非常感谢任何可能有助于解决问题的见解。
感谢收看。
更新:
嗨,安迪,感谢您的关注和回答。
我按照您的建议按照步骤操作:
按照您提供的链接,Windows 8.1 和 Windows Server 2012 R2,我发现“重要此更新已被更新 2919355 取代。”检查我的测试代理框后,已安装更新 2919355。
“Enter-PSSession localhost”cmdlet 返回错误: “连接到远程服务器 localhost 失败并显示以下错误消息:WinRM 客户端向 HTTP 服务器发送了一个请求,并得到一个响应,说请求的 HTTP URL 不可用。这通常由不支持 WS 的 HTTP 服务器返回-管理协议...”
然后我按照建议执行了“启用-PSRemoting”并确认“是”以执行每个操作。此后,再次执行“Enter-PSSession localhost”返回与之前相同的错误。
最后,我再次尝试了“Enable-PSRemoting -Force”;这返回: “WinRM 已设置为在此计算机上接收请求。 WinRM 已设置为在此计算机上进行远程管理。"
进一步尝试在服务器上远程执行 PS1 脚本返回原始错误。
我的测试代理服务器运行的是 Windows Server 2012 R2,我使用的是 PowerShell 4.0 版。
【问题讨论】:
-
托管您的测试代理的 VM 的操作系统版本是什么?
-
测试代理 VM 正在运行 Windows Server 2012 R2。
标签: tfsbuild powershell-remoting