2010-12-07 89 views
1

我有一个系统,高度依赖于各种网络API。我想每天至少运行一次我的API特定测试,以确保所有的API仍然可以很好地运行。我有一组单元测试(只是测试预期数据的API调用的简单rb文件),并且希望每24小时运行一次。如果有事情中断,我想采取行动(例如电子邮件或短信)。如何自动运行Ruby测试?

如何最好地设置自动化Ruby测试和解析结果?我可以只设置一个cron作业来处理.rb文件吗?如果测试失败,我将如何采取措施并以编程方式进行检测?也许RUby有一种持续集成解决方案可以解决这个问题?

回答

2

我刚刚通过使用Dr. Nic的this amazing tutorial来设置Hudson CI作为我的集成服务器。它通过一个gem安装,几乎预先配置好,而且工作起来非常简单。

我正在使用rspec和cucumber,而Hudson在我的git存储库上看到一个新提交时运行所有测试。如果所有测试都通过,它会将代码合并到我的主分支中。如果任何测试失败,它会保存它的马匹,并发送给我一封电子邮件。

编辑:

我也希望给10个大拇指到ChuckNorris插件哈德森。敏捷并没有比Walker,Texas Ranger的配对编程更好。

+0

我不喜欢使用Hudson测试的唯一情况是可能检查错误的代码。我宁愿知道它在代码提交之前通过测试。没有什么比拥有一个好的代码基础更加恼人的了,更新它,并且观看它去h-e-double-toothpicks。 – 2010-12-07 22:22:47

0

Ruby有Test::Unit内置,RSpecZenTestshouldacucumber,可能更多的工具来帮助测试。作为内置的,Test :: Unit被大量使用,并且是被其他工具打败的目标。

ZenTest和RSpec可以做连续测试:你做一个改变并保存一个文件,他们会看到它并运行测试套件。我喜欢这样,因为那样我就能马上知道事物的状态。

我没有使用黄瓜,但已使用其余的。我听说黄瓜的重点是集成测试,但这可能是评论者的感受,而不是开发人员的设计。 list of tutorials for cucumber是有趣的浏览。特别是有webrat: Automated Acceptance Testing with RSpec or Cucumber

这些中的任何一个都可以用cron连线以定期运行;只要像对待任何其他命令行应用程序那样对待它们即可。

它也应该很容易搭配网络测试,但你必须识别所需的宝石/模块并编写胶水代码。我没有必要使用机械化和/或其他HTTP宝石加Nokogiri来搜寻这些页面,因此我不需要这样的野兽。