如何测试我的生产环境而不是我的测试环境Rails

时间:2014-07-21 15:34:11

标签: ruby-on-rails

我现在一直在努力解决问题几天,我想知道如何强制我的Rails应用程序在环境中运行然后我希望能够测试图像以确保它们是http或者https。

我越来越接近解决问题,但现在我想测试我的生产网站而不是我的测试。原因是当我运行我的rake测试来检查图像是否有http或https时,它只给我一个相对链接,如

/images/9995/0007/company_logo.png

这对我没有任何帮助。为了assert_match / http:/ patten,我需要它来抓取生产网站上没有测试的图像。我怎样才能做到这一点?我现在已经研究了很长一段时间了,我仍然觉得我不会在这里找到它。

我试图通过将这行代码放入config / environments.rb来强制生成Rails环境

ENV["RAILS ENV"] ||= 'production'

问题是,当我运行我的测试时,它是否仍然引用测试数据库?我怎么知道当我运行rake test TEST = test / functional / ect_test.rb它正在运行的生产?

我也尝试让我的database.yml文件“指向”生产但是我把它弄得很乱,坦白说我真的不知道它是如何工作的(这是来自另一个堆栈的推荐溢出网站)。无论如何,一些帮助将不胜感激。

*仅供参考我在Rails 2.3上运行。我们正在升级我们的数据库。任何投入将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

只需启动服务器或运行环境设置为production的测试即可。要执行此操作,只需将RAILS_ENV=production添加到命令rails serverrake test或您运行服务器或测试的任何内容。这一行:

ENV["RAILS ENV"] ||= 'production'

拼写错误(仅提及以防万一)。它缺少一个下划线。此外,如果已设置ENV值,则不会将RAILS_ENV设置为生产。成功:

ENV["RAILS_ENV"] = 'production'

确保覆盖任何值。虽然前面提到的命令前置技术应该有效。

此外,如果您的网站以https格式运行,则可以确保具有相对路径的图片也将通过https提供。