在我们的环境中,我们有很多长时间运行的功能测试,这些测试目前占用构建代理并强制其他构建排队。由于这些代理只等待测试结果,理论上它们只是将测试交给其他机器(测试代理),然后运行排队的构建,直到测试结果可用。
对于CI构建(包括单元测试),这应该保持内联,因为我们想要对故障进行即时反馈,但是在运行功能测试所花费的时间,结果的前置时间和结果之间取得更好的平衡会很棒。我们集体建设的吞吐量。
据我所知,TeamCity本身并不支持这种情况,所以我认为有几个选择:
有没有人在类似情况下取得过成功,或者知道上述任何我没有想到的优点/缺点?
答案 0 :(得分:1)
您对可用选项的描述似乎非常准确。 如果您想要实时更新构建进度,则需要为每个正在运行的构建使一个TeamCity代理“忙碌”。
这里唯一的缺点似乎是代理牌照费用。 如果测试仅在其他计算机上构建启动进程,则TeamCity代理进程本身可以在低端计算机上运行,甚至可以在单台计算机上运行多个代理。
第二个场景的扩展可以是两个构建配置而不是单个构建:一个可以启动外部流程,另一个可以在外部流程完整性上触发,然后发布所有外部流程结果。它还可以对起始构建具有快照依赖性以维持关系。
答案 1 :(得分:1)
对于任何好奇的人,我们最终购买了更多代理并将其分配到测试池。调查证明,无法更新构建结果(我完全可以理解为什么不能立即支持这种丑陋)。