101

モデルのRSpecテストがいくつかあり、Railsサーバーモードで表示されるのと同じようにSQLActiveRecordロギングをオンにしたいと思います。どうやってするか?

私はテストを始めます

RAILS_ENV=test bundle exec rspec my/test_spec.rb

ありがとう

4

5 に答える 5

383

テストのどこかでActiveRecordロガーをstdoutに設定してみることができます。rspecを使用している場合、おそらくスペックヘルパーで?

ActiveRecord::Base.logger = Logger.new(STDOUT)
于 2011-04-01T13:50:37.017 に答える
57

デフォルトでは、すべてのデータベースクエリはすでにテストモードでログに記録されます。彼らはになりますlog/test.log

于 2011-03-09T10:40:16.153 に答える
11

セットする

config.log_level = :info 

テスト環境で

于 2015-09-01T07:20:29.813 に答える
8

他の回答があなたのケースで機能しない場合は、テスト環境の「ログレベル」を確認してください。

デフォルトは「debug」で、Railsによって生成されたSQLを出力します。「info」に設定されている場合、SQLは失われます。

于 2012-04-08T23:23:22.483 に答える
2

あなたのtest.rb

Rails.application.configure do
  ...
  config.logger = ActiveSupport::Logger.new(STDOUT)
end
于 2020-03-21T23:11:29.627 に答える