标准之一 乔尔测试 是每日构建。这个想法是,如果构建被打破,无论谁折断了它,就可以修复它。如果无法修复构建,则每个人都必须检查旧版本并为此努力。我可以理解,在集中版本控制中,这可能是非常糟糕的,避免尽可能多地合并和分支很重要,但这听起来只是用于分布式版本控制的小麻烦。你同意这个吗?每天构建很重要的其他原因还有其他原因吗?

有帮助吗?

解决方案

我认为这里要注意的是 常规的 建立帮助 尽快捕获错误. 。不是 每天,但通常足够。理想情况下,它也可以运行您的单元测试。

目的是找出最终测试阶段之前的构建何时破裂,以尽快找到它们。

只需将其设置为建立您的主要开发分支即可。

我们在工作中使用它(尽管我们每小时构建),而且通常在忘记设置时,我们就会在发布前几个小时就发现问题。

其他提示

需要对此添加一点(和@goodenoughs):

但这听起来只是用于分布式版本控制的小麻烦。

强调否 - “服务器”构建的功能是告诉您,您的中继线将或多或少地从清洁中构建和通过其测试(您需要进行的环境需要的配置量就越少)。

我正在考虑转换为DVCS,但即使这样做,您也会将我的连续整合从我的冷死手中拖动。

举一个简单的例子 - 您正在开发功能“在您的机器上,但不会在其他任何地方。因此,当您将构建推向“躯干”时,连续集成将触发,构建将失败,您将知道并希望 任何人都会拉您不太完整的代码,您都可以采取步骤。

如果您正在与多个开发人员一起研究一个项目,则必须能够定义发布版本来自何处 - 有效的中继 - 无论您的版本控件如何工作,这都是事实。

如果您添加了一项功能 - 尤其是其他人具有依赖性的功能,则可以确信,当它被推到“实时”时,它会构建并通过Dev环境以外的其他地方进行测试。除此之外,我还从构建服务器的构建中部署 - 它是一种指定“权威”构建的方式。最终,我将对用户触发的部署构建。没什么好说的,您可以在它周围工作 - 如果您需要它,就不能了(我 在办公室中炒圆形开发框以查找并提交丢失的文件)。

那一切都很强吗?不知道 - 但是我的构建服务器是我不想回馈的东西之一。

我认为每日构建非常重要。如果您在不同的时间区中拥有分布式团队,那么最好找到大多数团队大致“一天结束”的时间。此外,如果每日构建具有自动测试组件,那么它是更可取的。

在中央源控制系统的日子里,我会主张在源代码中更改任何内容时每5-10分钟运行一次连续构建。由于汇编错误有可能减慢团队的大部分。对于运行分布式源控制系统的组织,由于开发人员直接触摸“原始”代码库,因此可能不需要连续构建。

理想情况下,除非您正在建造大量的建造时间超过半天,否则每天将不止一次建造一次。一旦您设置了连续集成服务器,例如 哈德森 或者 团队, ,这些构建将自动发生,通常每小时或每个提交都会发生,如果有任何问题,您将收到通知。

这是尽早发现错误的好方法,尤其是如果您还在作为构建的一部分进行自动测试时。这对于查找构建在一个开发人员的机器上工作但在其他地方工作的配置错误特别有用,因为存储库或环境省略了某些东西。

更高级的连续集成服务器还允许您随时间跟踪指标(例如,代码覆盖率,构建时间,代码等线等)

每日构建还可以。如果您没有别的,那么您一定需要它们,但老实说,我认为乔尔的测试有些过时了。

我认为,您应该在一天中不断建立,运行您的设备,系统和功能级别的测试用例,理想地将包装和部署到同时的环境中,同时验证您是否拥有任何DB和环境版本控制机制正在按预期工作。

如果构建或部署时间过多,则考虑将其中一些问题验证为实体或软件RAM磁盘,更快的互联网连接,相当性的构建等。 。

每日构建并不重要。每日构建 总是成功的 是(或仅断裂一个小时的地方)。当构建损坏的时间损失70%时,CI并不是很有用,因为如果东西大部分破裂,它并不能帮助您识别错误。

我认为应该每天构建,测试和部署到登台服务器。

“每日构建”背后的想法是始终准备好测试人员和项目经理可以运行的东西,以便每个人都对项目的真实状态有所了解。

过去,在“每日构建”测试人员或项目经理“每日构建”之后,可以立即运行该应用程序,因此不必提及部署步骤。

许可以下: CC-BY-SA归因
scroll top