我注意到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