【发布时间】:2017-09-01 21:30:19
【问题描述】:
我们有一组大约 1000 个(当前)测试,用 C# 编写,每周运行两次。我们正在使用 TFS 2017 更新 1(本地),系统配置为在另一台机器上设置的 6 个 VM 上运行测试。其中 4 台虚拟机运行 Windows Server 2012R2,另外 2 台运行 Windows Server 2016。所有虚拟机都是最新的更新。使用 VS 2017 完成开发。所有测试都是直接的非 UI 功能测试,在每台机器上使用 SQL Server 实例,在测试期间没有跨机器通信或类似的东西。每台机器都是自己独立的环境。
所有测试在本地都运行良好(或者如果它们失败了,我们知道原因,这很好)。当我们启动构建时,实际构建和其他初步步骤似乎很顺利。但是,当它进入“运行功能测试”步骤时,只有一些代理机器开始运行它们,通常是 6 台机器中的 2 台,有时是 3 台,而且通常不是相同的机器。查看任务管理器,我可以看到其他虚拟机没有处理器活动可言。我不知道为什么会这样,也不知道为什么似乎是不同的机器成功启动并开始逐次运行测试。
关键是因为所有机器都没有运行,这使我们超过了 6 小时的测试运行限制,我已经看到在其他线程中处理过......我已经尝试了这些线程中建议的所有内容(包括.runsettings 文件中的设置)并且无法让它放弃该超时,因此我们的整个运行在 6 小时后取消,许多测试中止。出于某种原因,上周我们对所有测试进行了干净运行...自上一次运行以来没有任何变化,并且在下一次运行时又恢复为这种行为。
任何关于“懒惰”机器未运行测试或删除 6 小时超时的见解将不胜感激......
附加说明:此行为在 8 月 9 日左右开始“出乎意料”。在此之前,所有机器都按预期运行。在那段时间附近没有发生任何软件升级或任何其他可疑的事情。虽然 6 小时的时间限制这件事困扰了我一年左右。
【问题讨论】:
-
您是否在运行功能测试构建任务中选择了“按机器数量分布测试”?
-
我发现了“按机器数量分布测试”设置,我相信当我们升级到 2017 年时,它就一直设置至今。在testsettings文件中runTimeout和testTimeout设置都设置为一周,在runsettings文件中有对testsettings文件的引用。
-
VisualStudio 测试代理部署任务和运行功能测试任务的设置是什么?你能分享他们的截图和这两个任务的构建日志吗?
标签: tfs