如何从在 V2.x VSTS 代理上运行的测试代码访问 VSTS 工作项?



构建成功后,我们在构建代理 (V1.105.xxx( 上运行 E2E 自动化测试。测试代码利用 Visual studio 单元测试框架访问 VSTS 工作项,以使用数据驱动方法加载测试数据(每个测试用例方法链接到一个测试用例工作项(:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.Tes tCase","https://myaccount.vi sualstudio.com/Defau ltCollection;MyProje ct";, "1111111", DataAccessMethod.Sequential(

我们使用 PAT 身份验证以交互模式运行 V1.x 构建代理,如下所示:

C:\agent\agent\VsoAgent.exe/Login:e2etest,xxxx

但是我们找不到使用 PAT 身份验证运行 V2.x 代理以访问 VSTS 工作项的方法。

V2.x 代理是否仍支持此功能?

使用 PAT配置生成代理时,PAT 令牌仅用于代理的初始配置。更多信息,可以参考通信。

关于交互模式,如果缓存帐户无法访问 vsts 或没有缓存帐户,它将提示登录窗口,让你在配置或运行生成代理时进行身份验证。您需要更改此用户的权限。

您可以尝试在版本控制管理页面中为此用户设置拒绝读取权限,需要下载该源并检查结果的队列构建将不再启动。

总结问题和解决方案:

根据 starain 的评论,在旧的 V1.x 代理中,关于从我们的测试代码访问 VSTS 工作项,这与我们用于在交互模式下运行代理的 PAT 令牌无关。实际上,我们使用 VM 的本地管理员帐户运行代理,我们曾经使用该帐户连接到 VSTS,并且缓存了凭据。测试代码仅使用该缓存凭据来访问 VSTS 工作项。

因此,V2.x 的解决方案很简单,只需使用本地管理员帐户运行代理服务即可。无需在交互模式下运行。

感谢斯塔兰的大力帮助!

最新更新