【问题标题】:How to replace Rspec's ENV["RAILS_ENV"] ||= 'test' deprecated in Rails 3.0?如何替换 Rails 3.0 中不推荐使用的 Rspec 的 ENV["RAILS_ENV"] ||= 'test'?
【发布时间】:2011-02-10 22:18:34
【问题描述】:

我正在使用 rails (3.0.4)rspec-rails (2.5.0). When I runrails 生成包含此行的 rspec:install it producesspec_helper.rb`:

ENV["RAILS_ENV"] ||= 'test'

当我运行 rake spec 时,我在终端中收到此警告:

DEPRECATION WARNING: RAILS_ENV is deprecated. Please use ::Rails.env.

这并没有那么烦人,因为它只在我的Spork.prefork 中运行一次,但如果可能的话,我想克服这种弃用。我是 Rails 新手,在 rspec-rails issues 或其他任何地方都没有提到这一点。

【问题讨论】:

    标签: ruby-on-rails-3 rspec2 rspec-rails


    【解决方案1】:

    我在GitHub issue回复的副本:

    该警告告诉您不推荐使用常量RAILS_ENV,而不是环境变量ENV["RAILS_ENV"]。如果您克隆 Rails 存储库并查看 v3.0.4 标记,然后搜索 RAILS_ENV,您会看到 Rails 本身在多个地方使用 ENV["RAILS_ENV"]

    必须来自您应用中的其他地方。

    【讨论】:

    • 谢谢!问题出在 newrelic_rpm gem。
    【解决方案2】:

    必须是 Rails 3.0.4 中的新功能。这应该有效:

    从 spec/spec_helper.rb 中删除 ENV["RAILS_ENV"] || = 'test'

    查找require rspec/rails 行。

    在其后立即添加::Rails.env ||= 'test'

    在 rspec-rails 跟踪器上打开一个问题是个好主意,因为这需要更改。

    【讨论】:

    • 感谢您的修复。 Issue reported.
    • 更新,这不起作用。 Rails.env 在那个时候返回development,所以||= 什么都不做。我花了一段时间才弄清楚为什么我的测试在我的开发数据库上运行。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多