如何显示RSpec测试生成的SQL查询日志?

如何显示RSpec测试生成的SQL查询日志?,sql,ruby-on-rails,testing,logging,rspec,Sql,Ruby On Rails,Testing,Logging,Rspec,我正在为我的rails 3应用程序编写规范。我想测试db事务是否真的有效。如果能够在我的应用程序中看到由规范驱动生成的sql查询,那将非常有帮助 有没有一种方法可以像在rails控制台中一样查看查询 我使用的是Rails 3.0.9、RSpec 2.6和sqlite(稍后将迁移到mysql)请在规范中说明: ActiveRecord::Base.logger=logger.new(STDOUT)(如果已定义)(ActiveRecord::Base) 您可以tail-f log/test.log查

我正在为我的rails 3应用程序编写规范。我想测试db事务是否真的有效。如果能够在我的应用程序中看到由规范驱动生成的sql查询,那将非常有帮助

有没有一种方法可以像在rails控制台中一样查看查询


我使用的是Rails 3.0.9、RSpec 2.6和sqlite(稍后将迁移到mysql)

请在规范中说明:

ActiveRecord::Base.logger=logger.new(STDOUT)(如果已定义)(ActiveRecord::Base)


您可以
tail-f log/test.log
查看发生了什么。一个但不是两个。

根据Rails 5文档()。现在可以使用explain方法。这将只记录您指定的查询,但如果您在测试之前有大量SQL代码,您将不会不知所措

ap Model.explain

谢谢我还发现这很有用。在test.rb文件中,您可能还需要设置
config.log_level=:debug
可能与
模型重复。explain
不记录查询–它执行DB的explain命令,该命令提供有关查询如何运行的信息。例如:是否使用索引、查询需要检查的数据库行数等。