通过持续集成尽早发现缺陷 - 编程入门网
)、查看对多个构建的修改以及查看 Hudson 执行构建的工作空间。(如果需要 获取项目资产,例如 WAR 文件,可以在工作空间中进行操作。)
编写一些代码! CI 过程需要三个组件:构建、SCM 和 CI 服务器。现在,这些都设置好了, 可以开始执行 CI 了。当然,为了让 CI 发挥作用,需要编写一些代码并进行修 改。在本节中,我们从头到尾看看 CI 过程是如何工作的。 通过持续集成尽早发现缺陷(12)时间:2011-07-08 IBM Andrew GloverCI 的节奏 在研究完整的 CI 场景之前,先谈谈使用 CI 时的开发节奏。使用 CI 服务器 运行构建并不妨碍您亲自运行本地构建。实际上,在正确的 CI 过程就位之后, 它会将 SCM 中的失败通知您,所以要尽可能确保新代码或修改的代码工作正常, 然后才能将它们签入 SCM 存储库。这样做可以避免大量警告不必要地干扰所有开 发人员。 因此,CI 环境中的开发节奏应该是下面这样: 对本地沙箱执行更新。 修改一些代码。 编写一些测试。 运行本地构建,从而确保您没有破坏任何东西。 执行更新,从而确保从 SCM 获得最新的代码;然后再次运行构建,确保一切 正常。 签入您的修改。 注意,如果您和团队的其他成员同时在代码库中工作,那么第 5 步是非常重 要的,尤其是在您的工作花费了很长时间的情况下。 大多数开发人员会发现 CI 的节奏是很自然的。无论是否在 CI 环境中,这都 是良好的工作节奏! 不断增加的测试 现在,可以开始做一些真正的工作。例如,当 Hudson 运行示例项目的第一次 构建时,它发现并运行两个 JUnit 测试;因此它报告这两个测试都通过了,它们 都是新的测试,见图 11: 图 11. 这些测试顺利通过了 您可能为这些测试顺利通过感到高兴,也可能不以为然,认为它们没有提供足 够的覆盖范围。(当然,可以获取覆盖报告,但是目前不必这么做。)为了确保 代码是完善的,编写另外两个测试,在本地运行它们,执行更新,再次运行构建 ,然后签入它们。在此之后,编写另外两个测试 并重新执行相同的步骤。 检查构建状态 在签入两个新测试之后,可以访问项目的主页,检查它们的状态。过一会儿, 在 Build History 框中会出现一个尚未完成的构建。Hudson 已经在 SCM 存储库 中探测到了修改! 图 12. Hudson 对 Subversion 中的修改做出反应 通过持续集成尽早发现缺陷(13)时间:2011-07-08 IBM Andrew Glover检查构建的细节 在图 12 中,Hudson 的 Build History 框显示一个尚未完成的构建。当这个 构建完成之后(应该会顺利地完成),可以单击这个构建的日期来查看详细信息 ,见图 13: 图 13. 运行两个新测试之后的详细信息 图 13 显示触发这个构建的修改。可以单击每个修改旁边的细节链接来查看关 于修改的更多信息,比如谁做了这个修改和它们的注释语句,以及图 14 所示的 特定细节: 图 14. 在这个构建中发现两处修订 测试通过了吗? 如果返回构建状态页面并单击 Test Result 链接,那么可以看到运行了两个 新测试,所有四个测试都通过了,见图 15: 图 15. 测试报告 通过持续集成尽早发现缺陷(14)时间:2011-07-08 IBM Andrew Glover测试趋势 在配置这个项目时,我们指定了 JUnit 的结果文件,但是我没有说明为什么 这么做。这么做是为了演示 Hudson 支持的一个出色的开箱即用特性。对于每个 构建,Hudson 会解析对应的 JUnit 结果 XML 文件并生成趋势图。实际上,如果 返回项目的主页,就会看到一个趋势图,它显示对于到目前为止的两个构建,测 试数量已经加倍。 图 16. 一个不错的趋势,测试数量已经加倍 图 16 中的趋势图表明,在 Builds 6 和 8(在这里,它们是连续的构建)之 间测试数量已经加倍。 增加两个测试之后的趋势图 如果再编 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |