【问题标题】:Rails Integration Tests: reducing execution timeRails 集成测试:减少执行时间
【发布时间】:2011-03-19 17:21:05
【问题描述】:
我想分享我的发现并听取其他人关于减少 Rails 应用程序集成测试执行时间的成功和失败尝试(无论是“普通”测试、基于 Cucumber 还是基于 RSpec)。
这个问题暗示测试涉及数据库、视图渲染,也许还有 JavaScript/AJAX。即测试不要存根/模拟应用程序的慢速部分。
【问题讨论】:
标签:
ruby-on-rails
rspec
integration-testing
execution-time
launch-time
【解决方案1】:
作者的回答。
我尝试了两件事:spork 插件和内存数据库。我的开发配置:Ubuntu VirtualBox 托管在 Win7、Ruby 1.8.7、Rails 3、SQLite 上。
Spork 插件将我的测试启动时间从 35 秒减少到 2 秒。我总结了here 的步骤,但它们在 github 自述文件中描述得足够好。 This post 还描述了如何将其与 Guard 一起使用,以确保 spork 服务器在文件更改时重新启动。
我尝试使用in-memory database 来减少执行时间。在某些情况下,它们将执行时间减少了 10%,但启动时间有 2 秒的开销来创建模式。结果远远超过我可以观察到的改进。所以我自己决定,改进是不值得的。
我还 used RVM 用 1.9.2 替换 Ruby 1.8.7。它将执行时间从 58 秒减少到 42 秒。
结论:Spork 并将 1.8.7 替换为 1.9.2 可以显着改善您的 TDD 体验。