每次提交后运行单元测试的最佳方法? -svn-每个功能分支
每次提交后运行单元测试套件的最佳方法是什么?
我对我们在分支机构中进行所有功能/更改并保持中继稳定的情况特别感兴趣。
我的源代码控制是SVN,我使用乌龟SVN作为客户端。
是否有SVN事件或者我可以称为.cmd / .bat文件的内容?
如果答案是巡航控制,我们如何检查所有具有巡航控制的分支机构?
解决方案
我也会设置一个自动化的构建/部署过程。签出Cruise Control,它可以在部署之前运行单元测试。
http://cruisecontrol.sourceforge.net/
我们需要一个持续集成服务器,如CruiseControl。
这将监视svn的更改,在提交上进行触发,在测试套件运行后对其进行跟踪,并直接在系统托盘(或者电子邮件或者我们认为合适的任何通知)中标记任何错误
我们需要通过编写一个定义项目需求的小脚本(主要是XML)来设置CruiseControl。推荐..一旦尝过就不会回去。
这是我那天回去设置的
更新:我认为没有全局检查所有分支机构的设置类型。每个分支应使用不同的主干URL ...这意味着CruiseControl的项目不同。
如果遵循建议的Subversion分支方式(请参见此处),则Cruise Cruise本身似乎正在Subversion中使用分支。
我认为我们可能应该在提交之前运行单元测试。如果要在每次提交时进行测试,则应尽早进行测试以拒绝破坏性更改。
我们可以使用Subversion钩子执行此操作。如果添加一个" pre-commit"钩子,则可以在提交之前进行构建/测试。挂钩脚本将在服务器上执行。
使用Buildbot。
它具有一个名为svn_buildbot.py的实用程序,可以从Subversion提交后脚本中调用它。
Buildbot以及其他许多VC系统都是颠覆性的,因此可以配置为从已提交的分支中提取新修订。
它还提供电子邮件通知和Web界面,用于在特定版本/分支进行状态检查和强制构建。