[英]Changing a rake task to work on test environment
namespace :fixtures do
namespace :load do
task :prepare => :environment do
ENV['FIXTURES_PATH'] = "spec/fixtures"
ENV['RAILS_ENV'] ||= "test"
puts ENV.inspect
Rake::Task["db:fixtures:load"].invoke
end
end
end
我已將此添加到 ./lib/tasks 中的 special.rake 文件中,以便使 rake db:fixtures:load 命令應用於 spec/fixtures 目錄中的夾具,並應用於測試環境。
它不起作用。 我哪里錯了?
您需要重新連接到數據庫。 就像是
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations["test"])
在環境已經加載后更改 ENV['RAILS_ENV'] 不會做任何事情。
如果您在更改 ENV 后加載環境任務,也許它也可以工作,但不確定:
task :prepare do
ENV['RAILS_ENV'] ||= "test"
Rake::Task["environment"].invoke
Rake::Task["db:fixtures:load"].invoke
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.