Web applications 将web应用程序转移到持续集成中的人是否有成功的故事/智慧之言?

Web applications 将web应用程序转移到持续集成中的人是否有成功的故事/智慧之言?,web-applications,continuous-integration,Web Applications,Continuous Integration,我先发制人地将其标记为社区维基,因为它是 我感兴趣的是听取那些在移动到web应用程序的持续集成方面具有实际成功经验的人的意见。我特别感兴趣的是: 您使用了哪些工具来汇总报告(例如Hudson) 您的应用程序由哪些代码组成(例如,一个JavaScript API,服务器端代码+客户端代码的混合,等等) 您使用什么工具来执行单元测试 您的QA使用了哪些工具来执行功能测试、烟雾测试等 如果你必须克服任何东西,你必须克服哪些文化障碍才能进入CI 对我来说,我正处于一个成功整合的中间,但这种整合已经付

我先发制人地将其标记为社区维基,因为它是

我感兴趣的是听取那些在移动到web应用程序的持续集成方面具有实际成功经验的人的意见。我特别感兴趣的是:

  • 您使用了哪些工具来汇总报告(例如Hudson)
  • 您的应用程序由哪些代码组成(例如,一个JavaScript API,服务器端代码+客户端代码的混合,等等)
  • 您使用什么工具来执行单元测试
  • 您的QA使用了哪些工具来执行功能测试、烟雾测试等
  • 如果你必须克服任何东西,你必须克服哪些文化障碍才能进入CI
对我来说,我正处于一个成功整合的中间,但这种整合已经付出了代价(我确实在深夜哭了一次)。原因是:我被我的环境人为地约束着,而且我还试图在我的约束环境中做一些没有人做过的事情

但不要害怕,编程中没有哭泣(大多数时候),以下是我自己对我的问题的回答:

  • Hudson是我的CI主工具。开发正在Mac、Windows和Linux上进行,但CI构建都在Linux上进行
  • 我负责一个纯JavaScript API,外加一点点PHP
  • 我使用YUI Test 3进行单元测试,通过在Linux机箱上的无头环境中运行的Selenium远程控制进行推送
  • QA使用Selenium进行所有用JavaSelenese编写的测试
  • 文化障碍:这很有趣。人们只是不理解测试JavaScript。例如,这里有一个会议的回复,“不,真的,我需要一个浏览器来运行我的单元测试。为什么我要在浏览器之外运行我的测试?”或者,“得了吧,开发人员也需要运行这些单元测试。为什么我必须打包所有东西,并以这样一种正式的方式对待所有东西?”

我把我们的产品,7人小组,搬到了哈德逊。这里有一点背景:
我们的团队很有天赋,但我不需要测试新开发人员的心态。我无法告诉你,在最初的几周里,我们的产品在同一天被重复破坏了多少次。。我们遵循敏捷开发方法,使用迭代/冲刺以一定的间隔生成可发布的代码。到目前为止,我相信你看到了我的痛苦。我安装了Hudson,没有回头看,因为我不仅不必持续监控构建和单元测试的状态

•您使用了哪些工具来汇总报告(如哈德逊)?
哈德逊

•您的应用程序由哪些代码组成(例如,一个JavaScript API、服务器端代码+客户端代码的混合等)
Grails(Groovy、Jquery、Javascript)

•您使用什么工具来执行单元测试?
Groovy单元测试是为所有文件创建的,并为遇到的每个bug创建一个 协助进行回归测试,并向客户提供可操作的结果

•您的QA使用了哪些工具来执行功能测试、烟雾测试等?
烟雾测试,因为团队规模和个性

•如果你必须克服任何东西,你必须克服哪些文化障碍才能进入CI?
老实说,这是一个巨大的障碍。开发人员抱怨创建单元测试所需的时间,后来他们意识到由Hudson持续测试所获得的时间。开发人员最初觉得我试图“指责”破坏构建的人


如果您需要更多信息,请告诉我。

我听说越来越多的人围绕报告的bug构建单元测试。我喜欢这种方法,因为它是一种非常简单的方法,可以集中时间构建单元测试。我们发现它非常有用。这也增加了我们客户的信任,因为我们在交付的单元测试运行文档中展示了如何构建单元测试。您有没有一个例子可以分享您在交付的文档中构建单元测试的内容和方式?是的,我们的版本包括cliff notes版本和整个版本的详细版本。在cliff注释中,我们有一个部分将列出任何未通过回归测试的bug。在详细部分中,我们列出了在用户验收测试期间发现的每个bug,并显示bug#,info,pass/fail的网格。我们这样做的原因是,客户告知我们,他们目前正在与一个小组合作,该小组每两次发布都会产生相同的错误。