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

gde*_*ino 30 sql testing logging rspec ruby-on-rails

我正在为rails 3应用程序编写规范.我想测试数据库事务是否真的有效.能够看到在由规范驱动的情况下生成我的app的sql查询真的很有帮助.

有没有办法像在rails控制台中一样查看查询?

我正在使用Rails 3.0.9,RSpec 2.6和sqlite(稍后将转移到mysql)

Chr*_*det 72

把它放在你的规格中:

ActiveRecord::Base.logger = Logger.new(STDOUT) if defined?(ActiveRecord::Base)

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

  • `verbose_query_logs = true` 不是用于显示查询日志,而是用于显示额外信息。您仍然需要添加“ActiveRecord::Base.logger = Logger.new(STDOUT)”来显示日志。 (5认同)
  • 在test.rb文件中,您可能还需要设置`config.log_level =:debug` (2认同)
  • 在 Rails 5.2+ 中,您还可以添加“ActiveRecord::Base.verbose_query_logs = true”来查看触发每个查询的代码行 (2认同)