92 我的模型有一些RSpec测试,我想像在Rails服务器模式下一样打开SQL ActiveRecord日志记录。怎么做? 我开始测试 RAILS_ENV=test bundle exec rspec my/test_spec.rb 谢谢 ruby-on-rails ruby activerecord rspec-rails — 扎普 source
55 默认情况下,您所有的数据库查询都将以测试模式记录。他们会进来的log/test.log。 — 闲人 source 啊,我想在控制台上看到它。但这很公平。 — lzap 2011年 21 您可以使用tail -f log/test.log — idlefingers
341 您可以尝试将ActiveRecord记录器设置为在您的测试中的stdout。如果您使用的是rspec,也许在spec帮助器中? ActiveRecord::Base.logger = Logger.new(STDOUT) — 乔治 source 3 如果您要测试仅active_record包含的gem,则它会提供更多帮助,因为这些默认情况下不会记录SQL。 — 布伦登·缪尔 如果您使用的是IRuby(适用于Ruby的Jupyter),STDOUT则已被重新映射,应$stdout改为使用。 — Ulysse BN
12 组 config.log_level = :info 在测试环境中 — 尼古拉 source 4 或将其设置为config.log_level =:debug以获取最大输出,包括执行的每个SQL语句 — Zack Xu
9 如果其他答案在您的情况下不起作用,请检查测试环境的“日志级别”。 它的默认值是'debug',它将输出Rails生成的SQL。如果将其设置为“ info”,则将丢失SQL。 — 沉思玮申思维 source
1 在您的test.rb: Rails.application.configure do ... config.logger = ActiveSupport::Logger.new(STDOUT) end — 佩雷·琼·马托雷尔 source