我注意到Rails在開發數據庫中創建觸發器,但在測試數據庫中創建觸發器,因爲它會從schema.rb創建測試數據庫,而不是運行遷移。我有一個觸發器(作爲遷移),需要測試它是否正確,我該怎麼做?我嘗試手動添加觸發器到測試數據庫,但沒有奏效。使用觸發器進行Rails測試
3
A
回答
4
默認情況下,rails使用數據庫獨立schema.rb設置測試數據庫,它不理解類似觸發器的東西。
如果您將config.active_record_schema_format
更改爲:sql
,則rails會轉儲代表開發數據庫結構的原始SQL,並使用它來重新創建測試數據庫。這個轉儲被放置在development.sql中,然後被用來代替schema.rb
這個轉儲是使用你的數據庫提供的命令行工具完成的,因此會遵循活動記錄不知道的觸發器的功能
0
相關問題
- 1. 使用TSQLUnit測試INSTEAD OF觸發器
- 2. 使用Rails進行AutoTest和Rspec測試
- 3. 使用activeadmin進行rails測試
- 4. $使用Jasmine進行測試時不會觸發
- 5. Apex測試類 - 觸發器未觸發
- 6. OPA5測試觸發器客戶行爲
- 7. Rails進行測試,多個測試
- 8. Rails:使用開發數據庫進行測試
- 9. 觸發瀏覽器事件進行測試
- 10. 觸發器測試類
- 11. tSQLt,觸發器和測試
- 12. SQL使用觸發器進行約束
- 13. 使用LDAP服務器進行Rails黃瓜測試
- 14. 如何測試rails中各種測試用例的postgres觸發器函數?
- 15. 使用測試運行器進行Web性能測試
- 16. 使用PostgreSQL規則/觸發器進行調試
- 17. 使用Rspec進行控制器測試
- 18. 使用自動測試進行測試
- 19. 用Zeus和Sidekiq進行Rails測試
- 20. 使用VHDL中的D觸發器的T觸發器的測試臺
- 21. 使用進程外數據庫訪問進行Rails測試?
- 22. 使用Node.js TCP服務器進行測試驅動開發?
- 23. JUnit使用Google App Engine開發服務器進行測試
- 24. 使用React進行測試
- 25. 使用CssSelector進行測試
- 26. 使用LIBSVM進行測試
- 27. 使用Erlang進行測試。
- 28. 使用Mockito進行測試
- 29. 使用Espresso進行測試
- 30. 使用HTF進行測試
感謝您的幫助!我試過這樣做,但沒有奏效。問題是,即使運行遷移,即使它顯示在開發數據庫上,但在schema.rb中沒有顯示觸發器。也許是因爲我將觸發器添加爲sql代碼?但我找不到任何其他方式來添加觸發器 – Nonos 2012-04-06 22:35:17
好吧,我最終得到它的工作!我取消了註釋test.rb config.active_record.schema_format =:sql中的行,然後運行RAILS_ENV = test db:migrate並添加了觸發器。再次感謝! – Nonos 2012-04-06 23:08:01
當你這樣做時,schema.rb根本不再使用 - 應該有一個用於替代的development.sql。你需要做rake db:test:prepare(除非你正在運行rake測試,rake spec等爲你做這件事) – 2012-04-07 06:56:16