|
|
1
3
对于Mercurial,您可以使用钩子,这将运行测试,并且只允许推送成功。但这可能需要很多时间进行推送(但开发人员无论如何都必须运行这些测试)。 或者您可以只拥有自己的一组bash脚本,这些脚本将运行测试,然后只运行commit命令。例如,对于django和svn commit,它看起来可能很简单:
或者还有另一种方法:如果有人提交代码,而代码没有通过测试,他会支付一些金额。很快人们就会记住测试,因为他们不喜欢花钱的概念;—) |
|
|
2
6
在其中一个小组里,在我们达成协议之前,我正在工作,任何一个考试不及格的人第二天早上都会给整个小组买熏肉三明治。它是极端的,但它是完美的! |
|
|
3
4
我认为这更多是一个社会问题,而不是自动化系统的缺陷。 是的,您可以在适当的地方改进系统,但是它们与考虑到它们提交的含义并在它们执行提交之前对其进行测试的人是不匹配的。 |
|
|
4
3
Teamcity对 pretested commit ;如果您的开发团队正在使用受支持的IDE,那么您可能会对此进行研究。 在我的公司里,我们不用太担心——我们的模式看起来像这样。 (a)每个开发人员在TeamCity中都有自己的项目配置,根指向自己的沙盒。他们可以在这里做任何他们喜欢的事情。 (b)开发团队有一个集成沙盒,其中交付了所有更改。项目封装了在源代码管理系统中监视此分支的配置。Dev领导在这里要制定规则,但这个规则几乎总是“必须保持绿色”。我得看看干净构建的确切百分比——这不是一个完美的记录,但是它的高到我从来没有被诱惑去坚持开发人员在运行测试时要更加严格。 (c)实际交付来自主流,主流应保持绿色(tm)。Dev Lead负责按照定义良好的计划向主流交付集成的干净快照。这个项目实际上生成了交付给测试的安装程序、进入第三方托管的位等。 您可能会得到比我们更具侵略性的策略的一个原因是我们的构建周期是缓慢的-大约四个小时。如果我们是一个数量级较小,成功率很低的人,我可能会提出另一个问题。 |
|
|
5
0
对于Git,您可以: http://francoisgaudin.com/2011/02/16/run-django-tests-automatically-before-committing-on-git/
|