テスト環境で実行すべきタスクを実行すると、開発環境で実行されています。これには と が含まれrake test:(units/functionals/integration)
ますrake db:test:prepare
。副作用として、テストを実行するたびにデータベースが上書きされます。開発データベースの名前を変更しましたが、古いデータベース ( のデータベース) が見つからないという不平を言い続けていますdatabase.yml
。環境はrequire 'rails'
my の上部にあるdevelopment に設定されてい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