我是初学网络程序员,我的公司要求我研究最适合他们的CI。起初他们想使用VS Team Services,因为它不到5人免费。以下是我们的情况
我们要遵循的工作流程如下
在GitHub上与dev分支合并 - >触发器构建在Team Services上 - >建立通行证 - >部署到Azure上的测试插槽 - >从Github主分支获得最新的硒测试 - >针对Azure上的测试插槽URL构建并运行selenium测试 - >测试通过 - >请求将权限部署到生产和其他插槽(如演示)。
如果任何构建或测试失败,CI将停止并向开发人员发送电子邮件。
到目前为止我所知道的:
我已经搜索并设法在与分支合并时触发Team Services上的自动构建。但正如我所说,主要的网络代码和硒测试是在两个不同的回购和我的老板希望保持这种方式。 我还了解到,在托管的Team Services构建代理上运行selenium firefox测试是不可能的,因此我们计划使用一些本地PC来构建和测试(尽管我们最初希望在Team Services上发生所有事情)
问题#1:测试和主应用程序是在两个不同的回购中,所以我不知道Team Services是否支持链接构建(主应用程序构建传递 - > selenium构建和运行 - > ......) 问题2:在selenium测试通过后,当代码在github上时如何使VS Team Services部署到Azure云服务
如果您认为在团队服务中这样做太复杂,请建议适合团队服务的其他工作流程(但保留reith在github上)或其他CI服务,这些服务将做我们想要的但更容易使用的工作。
提前感谢那些试图回答我问题的人
答案 0 :(得分:0)
我还了解到,无法在托管的Team Services构建代理上运行selenium firefox测试,因此我们计划使用一些本地PC来构建和测试
根据我的经验,我已成功使用TeamCity。它旨在与 .Net 一起使用。我们的infra完全基于Azure,我们使用了专用的Selenium Server VM(配置了Grid),因为TeamCity代理太弱而无法执行并行UI测试。基本思想是TC代理运行测试(在我的情况下是NUnit),但浏览器是在Selenium VM上创建/执行的。
但正如我所说,主要的网络代码和硒测试是在两个不同的回购中,我的老板希望保持这种方式。
使用哪种版本控制(甚至是混合模式)并不重要,TC支持它。但是为了记录 - 我也使用过Git。您需要的是 - 根据您的工作流程链接构建步骤。