當我通過rake運行任何rspec任務時,數據庫似乎被刪除和遷移,但是如果我通過script/spec path/to/spec運行它們,它不會'噸。有沒有我可以設置的選項,以便rake規格不會觸及數據庫?「rake spec」每次都遷移數據庫
0
A
回答
1
它不應該運行任何遷移,只會將db/schema.rb導入到您的測試數據庫中。這是預期的行爲,因此您的測試在運行之前使用數據庫模式的全新副本。你不想刷新測試數據庫的理由是什麼?
1
對於我所做的事我想永久關閉它。所以使用RSpec 2.5.0和軌道3:
複製rspec.rake到您的應用程序/ lib目錄/文件夾任務從:
~/.rvm/gems/ruby-1.8.7-p302/gems/rspec-rails-2.5.0/lib/rspec/rails/tasks/rspec.rake
這個添加到文件的頂部:
Rake::TaskManager.class_eval do
def remove_task(task_name)
@tasks.delete(task_name.to_s)
end
end
def remove_task(task_name)
Rake.application.remove_task(task_name)
end
remove_task 'spec'
查找和編輯此行強制空操作:
spec_prereq = :noop #Rails.configuration.generators.options[:rails][:orm] == :active_record ? "db:test:prepare" : :noop
0
我在命令行中運行rspec的時候也有過同樣的問題。在我的情況下,我正在處理一個沒有遷移的遺留數據庫,所以測試會失敗,因爲遷移無法運行。
的解決方案是編輯規範/ spec_helper.rb文件並刪除以下行:
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
之後的測試運行,沒有失敗。
相關問題
- 1. rake在rake數據庫後遷移db:migrate
- 2. rake在遷移數據庫時中止
- 3. Ruby數據庫遷移錯誤'rake db:migrate'
- 4. Rails遷移 - rake db:status表示遷移已關閉,但數據庫已遷移?
- 5. Rake數據庫待遷移的Rails數據庫:test:prepare
- 6. Heroku Rake遷移
- 7. 代碼第一次數據庫遷移
- 8. 數據庫遷移問題
- 9. 運行Heroku rake db:在Heroku上遷移不會遷移數據庫
- 10. 從RSpec遷移到Minitest :: Spec?
- 11. 數據庫遷移
- 12. 數據庫遷移
- 13. 數據庫遷移
- 14. 數據庫遷移
- 15. 進行rake數據庫遷移的備份。和命令拒絕耙數據庫:遷移耙中止
- 16. 數據庫數據遷移
- 17. rake db:遷移postgreSQL
- 18. 重新運行Heroku上的所有數據庫遷移(rake db:migrate:reset)
- 19. Rake db:針對現有數據庫遷移
- 20. Rails rake db:遷移最近創建的數據庫
- 21. Heroku在Rake數據庫後崩潰:遷移
- 22. 遷移數據庫時rake中止錯誤
- 23. Rake數據庫遷移失敗,出現「undefined method`double」
- 24. rake db:遷移清除我的數據庫
- 25. 新部署到生產,Rake數據庫:遷移失敗
- 26. 無法創建耙數據庫遷移
- 27. Rails遷移後的數據庫重置
- 28. Postgresql和devise數據庫遷移失敗
- 29. Rails + PostGIS錯誤遷移數據庫
- 30. Heroku上的二級數據庫上的數據庫遷移
有沒有辦法禁用?無論出於何種原因,該項目的開發人員決定不使用rails migrations來管理數據庫,因此導入schema.rb不是有效的選項。 – AdamB 2010-11-10 04:06:55
如果您有rspec.rake任務,請查找包含db:test的行:準備並註釋掉它。這應該防止它嘗試加載模式。沒有模式,你打算如何構建測試數據庫? – 2010-11-10 04:40:01
這個伎倆,謝謝! – AdamB 2010-11-10 18:34:19