有关Rails和CI的建议,这种情况经常发生的频率如何?或者什么是常见做法

时间:2011-10-01 16:52:32

标签: ruby-on-rails autotest cruisecontrol.rb

首先,自动测试和巡航控制是否执行相同的CI任务?

我想设置一些可以运行我的单元测试的东西,以及我本地MBP计算机上的集成测试,即我还没有单独的计算机。

每次更改文件时都会运行自动测试的东西,而巡航控制会更加周期性地运行,比如每次检查一次吗?

它对计算机造成了很大的压力吗?

1 个答案:

答案 0 :(得分:2)

自动测试和巡航控制是5种不同的工具。每次更改应用程序中的某些内容时,自动测试可帮助您运行必要的测试。这在您的本地环境中运行良好,因此您可以自动获得反馈,而无需记住运行测试的源代码(或测试代码)已更改。

Cruicecontrol(类似于Hudson / Jenkins / Bamboo / TeamCity / ...)是一个持续集成服务器,它在您定义时运行已定义的构建作业。以下是合理的替代方案:

  • 在每个checkin / commit上运行==因此连续
  • 运行每小时构建,以获得定期反馈。
  • 运行一个(大)夜间构建,进行大量检查,质量保证,......

它通常从Subversion,Git等源代码控制系统获取其所有内容(源代码,构建脚本,配置......) 它通常用于较小或较大的团队,以帮助整合不同人的工作。

因此,如果您只在您的机器上工作,并且主要进行单元测试,那么自动测试就足够了。否则,您应该考虑使用CI服务器(本地),当然需要更多资源,这需要更多资源。

我不知道巡航控制的开销是多少,但是在本地运行Hudson是一个更大的Java程序,具有500 MB到1 GB的内存饥饿。自动测试几乎没有任何开销,它只是自动执行您在其他地方手动执行的操作。

我认为您不希望在每次更改时自动运行集成测试,也许集成在CI服务器中并手动启动的一组Rake任务将完成这项工作。