【问题标题】:Continuous integration server for Erlang codeErlang 代码的持续集成服务器
【发布时间】:2011-09-07 02:15:54
【问题描述】:
【问题讨论】:
标签:
erlang
continuous-integration
【解决方案1】:
我们将 Jenkins 用于我们的 Python 代码,所以我认为您可以将 Jenkins 与 Erlang 代码一起使用。
【解决方案3】:
作为一家积极使用 Erlang 的公司,Klarna (www.klarna.com) 使用 Jenkins(以前称为 Hudson)对几乎每个开发提交进行日常回归测试。这是一个在 rnd 中总共有大约 80 人的组织,我们使用 Jenkins 的分布式模式,这使我们能够拥有 10 多个构建从站,仅由一个 Jenkins 服务器掌握。基本上,我们有一个带有 Eralng 代码的代码库,它由 svn 或 git 等工具进行版本控制。所有这些测试用例都在通用测试框架下,并且在 Jenkins 下都运行良好。
之前,我们尝试了 Cruise Control,但后来放弃了,因为 Jenkins 做得更好。
正如 Lukas 所提到的,您可能需要一个工具来生成 xml 文件,因为普通测试不会直接导出它们。虽然还没有真正尝试过该模块,但我们确实有一个通用测试事件处理程序的实现来完成这项工作,但由于性能原因它被放弃了,我们确实对测试时间有一个关键要求。现在,我们使用自己制作的脚本直接从通用测试日志中导出 xml。
您可以使用 Erlang 和 Jenkins 做更多事情,例如代码覆盖分析是否正确编译并将格式化的 xml 导出到 Cobertour 插件、使用 selenium 进行 gui 测试等。
关于设置Jenkins,我觉得Jenkins主页有很好的介绍。
关于敏捷工具,我想很难定义什么是敏捷工具。另外,我认为这在很大程度上取决于您组织的规模。您可能需要一个好的流程视图工具(团队级别或离职级别)、一个好的工单跟踪工具、代码审查工具、通信工具。其中有很多是在开源下实现的。根据我们的经验,它们似乎都无法与 Jenkins 无缝协作,这意味着您需要根据自己的要求进行选择和调整。但这就是开源的美妙之处,不是吗:)?
【解决方案4】:
我们使用 buildbot 和我们自己的配方来挂钩单元测试。