对 TFS/Azure DevOps Services 中部分映射的 TFVC 存储库的测试影响

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

从 VSTest 任务的版本 2 开始,测试影响分析 (TIA) 成为该任务的一部分。 此功能通过帮助你仅针对生成运行相关测试来帮助加快 DevOps 周期。 实际上,你最终会运行受传入更改影响的测试,而不是整个测试套件。 有关测试影响分析的详细信息,请参阅使用测试影响分析 (TIA) 加快测试速度

除了在 Azure DevOps 中支持 GitHub 和 Git 外,TIA 还支持 TFVC。 本文介绍基于 TFVC 的生成/发布管道中关于 TIA 的已知限制,以及克服此限制的解决方法。

部分映射的 TFVC 存储库的问题

TIA 的工作方式是收集有关测试方法在其第一次运行(也称为基线运行)期间接触的文件的数据。 收集此数据的收集器只能查看代理计算机上已登记的存储库。 使用基于 TFVC 的管道,可以选择登记部分存储库。 例如,考虑具有以下结构的存储库。

TFVC 存储库结构

现在,在生成/发布管道中,可以看到“进程”下的“获取源”磁贴,如以下示例所示。

获取源

选择“获取源”,你将在右侧边栏选项卡上看到部分映射存储库的选项。

映射存储库

如果登记整个存储库(如上一示例所示),TIA 将继续正常运行,但如果部分登记(如以下示例所示),TIA 将无法找到受影响的测试。

部分映射存储库

部分登记 TFVC 存储库时,TIA 无法找到受影响的测试,因为收集器只能收集代理上已部分登记的存储库的更改,并且无法查看整个路径。 当代码更改从服务器流入时,它提供整个路径,并且与映射的路径匹配的尝试失败。

解决方法

若要解决此问题,可以将部分存储库映射到服务器上的完整代码结构,使本地登记上文件的完整路径与完整服务器路径相匹配。 为此,可以指定与服务器路径匹配的本地路径,如以下示例所示。

部分映射的存储库修复

这可确保服务器路径与收集器收集的路径匹配,并且受影响的测试被正确列出。