我有一个高度依赖各种Web API的系统。我想每天至少运行一次我的API特定测试,以确保所有API仍然可以很好地运行。我有一组单元测试(只是测试API调用预期数据的普通rb文件),并希望每24小时运行一次。如果出现问题,我想采取行动(例如电子邮件或短信我)。
如何最好地设置自动化Ruby测试并解析结果?我可以设置一个cron作业来处理.rb文件吗?如果测试失败,我将如何采取行动并以编程方式检测?也许RUby有某种持续集成解决方案可以解决这个问题吗?
答案 0 :(得分:2)
我刚刚使用Dr. Nic的Hudson CI设置了this amazing tutorial作为我的集成服务器。它通过一个宝石安装,几乎预先配置好,并且非常简单易用。
我正在使用rspec和cucumber,当Hudson在我的git存储库上看到一个新的提交时,它会运行所有测试。如果所有测试都通过,它会将代码合并到我的主分支中。如果任何测试失败,它会保留其马匹并向我发送电子邮件。
编辑:
我还想对Hudson的ChuckNorris插件竖起大拇指。敏捷并没有比使用Walker,Texas Ranger的编程更好。
答案 1 :(得分:0)
Ruby内置了Test::Unit,RSpec,ZenTest,shoulda,cucumber以及可能有更多帮助测试的工具。作为内置的,Test :: Unit被大量使用,并且是其他工具打败的目标。
ZenTest和RSpec可以进行连续测试:您进行更改并保存文件,他们将看到它并运行测试套件。我喜欢这样,因为那时我马上就知道了事情的状态。
我没有使用黄瓜,但已经使用了其余的黄瓜。我听说黄瓜的重点是集成测试,但这可能是评论者的感受,而不是开发人员的设计。 list of tutorials for cucumber是有趣的浏览。特别是webrat: Automated Acceptance Testing with RSpec or Cucumber。
任何这些都可以与cron连接以定期运行;就像对待任何其他命令行应用程序一样对待它们。
在网络测试方面也应该很容易,但你必须确定所需的宝石/模块并编写胶水代码。我不需要这样的野兽,因为我会使用Mechanize和/或其中一个HTTP宝石加上Nokogiri来搜索这些页面。