首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试Rails应用程序在生产环境中正常工作

如何测试Rails应用程序在生产环境中正常工作
EN

Stack Overflow用户
提问于 2013-01-17 16:55:18
回答 2查看 4.7K关注 0票数 2

我正在用TDD编写一个rails应用程序,所以,我想知道,我如何测试生产应用程序,比如使用不同于开发安全令牌的安全令牌,如何确保所有的配置在生产环境中都是正确的,比如邮件配置等等。

我们不应该在生产模式下运行测试吗,因为它会擦除数据库。

那么,应该如何在生产环境中测试rails应用程序呢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-18 01:10:39

许多开发人员使用的方法是创建另一个称为stage的环境。您可以使您的配置与生产相同,并在生产之前部署到此配置,以确保一切正常工作。如果愿意,您可以针对staging运行您的集成测试/性能测试。

可以将生产配置(配置/环境/生产.rb)复制到名为stage.rb的新文件中,然后记住使用分段数据库的新连接详细信息填充database.yml。

票数 8
EN

Stack Overflow用户

发布于 2013-01-17 17:23:03

当您运行测试时,您始终处于测试环境中,因为RAILS_ENV是用test_helper.rb硬编码的。设置RAILS_ENV=production意味着模式将从生产数据库克隆而不是从开发数据库克隆。当然,我可以在生产服务器上设置一个开发数据库,但这似乎没有意义。

考虑到我的开发和生产服务器之间的所有差异-操作系统、web服务器、数据库、gem等等-除非我不仅在开发中而且在生产中运行了我的测试套件,否则我真的不能放心地部署我的应用程序。多亏了Capistrano的漂亮和强大的API,这是在公园中散步来完成的:

下面是一个看起来是如何做到的例子:

代码语言:javascript
复制
desc "Run the full tests on the deployed app." 
task :run_tests do
 run "cd #{release_path} && RAILS_ENV=production rake && cat /dev/null > log/test.log" 
end

desc "Copy in server specific configuration files"
task :copy_shared do
  run <<-CMD
    cp #{shared_path}/system/voxway.rb #{release_path}/config &&
    cp #{shared_path}/system/database.yml #{release_path}/config
  CMD
end

desc "Run pre-symlink tasks" 
task :before_symlink, :roles => :web do
  copy_shared
  run_tests
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14375274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档