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