【发布时间】:2012-08-27 22:48:21
【问题描述】:
当我运行一个应该在测试环境中运行的任务时,它正在开发中运行。这包括rake test:(units/functionals/integration) 和rake db:test:prepare。副作用是每次我运行测试时它都会覆盖我的数据库。我重命名了开发数据库,现在它一直抱怨找不到我的旧数据库(database.yml 中的那个)。该环境正在我的application.rb 顶部的require 'rails' 中进行开发。我是否缺少某种简单的配置?
编辑:如果我运行带有RAILS_ENV=test 的测试,它们将在测试环境中运行。但是,我实际上无法运行它们,因为我有待处理的迁移(所有迁移)。运行 rake db:test:prepare RAILS_ENV=test 会给我同样的挂起迁移错误。
更新:数据库已迁移,我的测试正在进行中。我仍然觉得每次都用RAILS_ENV=test 运行我的测试不是正确的方法
更新:我发现如果我将railties 中的def env 更改为默认为'test',则环境变为测试。那是
def env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 testing development-environment environment