我们在 Teamcity 中使用相当标准的 CI 部署管道来打包我们的应用程序。我们从以下管道开始。下面的每个步骤都代表构建必须通过才能进入下一步的门:
- 编译
- 单元测试
- 后端组件集成测试
- 前端验收测试(基于 Selenium)
- 包裹
当前端测试套件较小且相对较快(<2 分钟)时,这在项目开始时工作得很好。然而,随着套房的规模和长度不断扩大(15:00 分钟并且还在不断增长),在每次办理入住手续时将其解雇很快就变得站不住脚了。此后,我们从主管道中删除了该套件,并在一个独立的管道上每天启动四次:
- 编译
- 单元测试
- 后端组件集成测试
- 包裹
这种方法的问题很明显,因为即使它导致前端测试套件中的回归,构建很可能会一直到打包阶段。我想如果前端测试套件失败,我可以使已经创建的包无效,但这似乎很笨重。我们已经研究过进一步优化测试套件,但我认为这是一个死胡同,除非我们可以并行运行测试,这是 TeamCity 不支持的。
欢迎提出建议/批评。