当前位置:  开发笔记 > 编程语言 > 正文

在集成更改之前,哪些版本控制程序可以强制执行测试的运行和传递?

如何解决《在集成更改之前,哪些版本控制程序可以强制执行测试的运行和传递?》经验,为你挑选了1个好方法。

在我的工作中,我们目前使用Aegis版本控制/ SCM.我们配置它的方式,我们有一堆测试,它强制以下事情是真实的,然后才能集成更改:

必须运行完整的测试集.

所有测试都必须通过.

通过测试驱动开发(TDD),这些似乎是明智的要求.但我还没有听说过任何其他版本控制系统可以做到这一点.(我们目前不打算转换,但我想知道将来如何不使用Aegis.)

我会对任何可以做到这一点的VCS(分布式或非分布式)感兴趣,我也对现有VCS的任何插件/扩展感兴趣.优选地是开源软件.

ETA:好的,似乎通常要做的是拥有VCS +持续集成软件,并且运行测试是作为构建的一部分自动化的,而不是单独的步骤.如果我理解正确,那仍然允许您提交未通过测试的代码,只是您收到通知 - 是吗?有什么东西可以阻止你完全集成/提交它吗?



1> gareth_bowle..:

IMO你最好使用像CruiseControl或Hudson这样的持续集成系统,如果你想强制你的测试通过,并根据测试结果进行构建而不是签入.这些工具设置简单,您可以通过网页获得结果内置通知(通过电子邮件,RSS或浏览器插件)和测试结果报告的优势.

关于问题的更新,您是对的 - VCS + CI允许您提交未通过测试的代码; 对于大多数CI设置,除非所有测试都通过,否则您将无法获得产品的最终版本.如果你真的想要阻止任何人提交,除非所有的测试都通过,你将不得不像其他人建议的那样使用VCS中的钩子.然而,这在我看来很难处理 - 要么开发人员每次进行签到都必须运行所有测试,包括与他们正在制作的签入无关的测试,或者你必须制作一些非常精细的VCS钩子,只运行与给定签入相关的测试.根据我的经验,依靠开发人员在本地运行相关测试并让CI系统偶尔发现错误会更有效率.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有