我注意到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. 使用activeadmin进行rails测试
- 3. 使用Rails进行AutoTest和Rspec测试
- 4. Apex测试类 - 触发器未触发
- 5. OPA5测试触发器客户行为
- 6. 触发浏览器事件进行测试
- 7. 触发器测试类
- 8. tSQLt,触发器和测试
- 9. SQL使用触发器进行约束
- 10. 如何测试rails中各种测试用例的postgres触发器函数?
- 11. 使用PostgreSQL规则/触发器进行调试
- 12. 使用Rspec进行控制器测试
- 13. 使用VHDL中的D触发器的T触发器的测试台
- 14. 使用进程外数据库访问进行Rails测试?
- 15. 使用Node.js TCP服务器进行测试驱动开发?
- 16. 使用Mockito进行测试
- 17. 使用SDN进行测试
- 18. 使用vb6进行测试
- 19. 使用React进行测试
- 20. 使用LIBSVM进行测试
- 21. 使用requests.adapters.HTTPAdapter进行测试
- 22. 使用CssSelector进行测试
- 23. 使用Erlang进行测试。
- 24. 使用HTF进行测试
- 25. 使用Espresso进行测试
- 26. 使用触发器在mysql行中进行并发更新
- 27. 如何在本地运行使用HTTP进行测试的Rails?
- 28. 使用Rails进行应用程序测试
- 29. 如何触发com.google.android.gms.actions.SEARCH_ACTION Google即时动作以进行测试?
- 30. 如何在FullCalendar中触发选择回调以进行测试?
感谢您的帮助!我试过这样做,但没有奏效。问题是,即使运行迁移,即使它显示在开发数据库上,但在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