如何在RSpec测试中为ActiveRecord打开SQL调试日志记录?

问题描述 投票:88回答:5

我的模型有一些RSpec测试,我想像在Rails服务器模式下一样打开SQL ActiveRecord日志记录。怎么做?

我开始进行测试

RAILS_ENV=test bundle exec rspec my/test_spec.rb

谢谢

ruby-on-rails ruby activerecord rspec-rails
5个回答
54
投票

默认情况下,您的所有数据库查询都已经在测试模式下记录。他们将在log/test.log中。


328
投票

您可以在测试中的某个地方尝试将ActiveRecord记录器设置为标准输出。如果您使用的是rspec,也许在spec帮助器中?

ActiveRecord::Base.logger = Logger.new(STDOUT)

11
投票

设置

config.log_level = :info 

在测试环境中


8
投票

如果其他答案在您的情况下不起作用,请检查测试环境的“日志级别”。

其默认值为'debug',它将输出Rails生成的SQL。如果将其设置为“ info”,则将丢失SQL。


0
投票

在您的test.rb中:

Rails.application.configure do
  ...
  config.logger = ActiveSupport::Logger.new(STDOUT)
end
© www.soinside.com 2019 - 2024. All rights reserved.