我正在与7个开发人员合作开展一个Web项目.我设置了一个beta框(debian),以便我们可以在将新代码传递给staging之前对其进行测试.
在测试版框中,我设置了Jenkins,并希望自动化合并/测试过程.我们还有一个测试套件,我想以某种方式配合.
我应该如何使用SVN / Jenkins测试和运行python web项目?
我正在努力制定一个好的工作流程.现在每个开发人员都在一个功能分支上运行,我在分支中运行代码,如果它看起来很好我们合并它.
我很乐意让开发人员登录beta jenkins,并告诉它从他们的功能分支构建.这是jenkins会做的计划:
>确保功能分支已从主干重新绑定
>确保beta分支与trunk相同(覆盖任何合并的功能分支)
>将功能分支合并到beta分支中
>杀死正在运行的服务器
>启动服务器nohup python app.py&
>运行测试套件python test.py
>将测试数据输出到Jenkins中的开发人员视图
>如果任何测试失败,请恢复到合并分支之前的状态
我不知道如何处理合并冲突.此外,上述可能是坏事和错误.任何意见,将不胜感激!
解决方法:
问题有点太大,无法在一篇简单的文章中回答,因此,就个人观点而言,我会尝试提供一些提示和参考:
>我喜欢将开发人员分成分支的想法,但我会在功能分支上进行测试,只有在功能通过测试时才合并到beta分支,这样在测试之前没有任何东西进入测试版!
>我会将集成步骤放在Jenkins之外的脚本中.使其成为源代码的一部分.这样您就可以在Jenkins之外快速测试脚本本身
>使用您最熟悉的构建系统或脚本语言,大多数步骤都可以使用任何编程语言轻松完成
>使脚本返回成功或失败,因此Jenkins可以将构建标记为失败
>对于合并问题,您有两种可能性
>在开发人员提交以进行集成之前,需要手动重新分配分支,检查脚本并在需要rebase时将其失败.这样就不会发生合并错误,如果分支没有重新分配,构建就会失败
>如果您更愿意允许非重新组合合并,则需要在合并错误的构建上失败,以便开发人员可以手动解决问题(通过在再次提交之前重新定位他/她的分支)
这里有一些我在这个领域有用的书:
> Google如何测试软件,作者:James A. Whittaker,Jason Arbon,Jeff Carollo
>持续交付:Jez Humble通过构建,测试和部署自动化发布可靠的软件
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。