How do I turn on SQL debug logging for ActiveRecord in RSpec tests?

后端 未结 5 1043
梦谈多话
梦谈多话 2021-01-30 05:16

I have some RSpec tests for my models and I would like to turn on SQL ActiveRecord logging just like I see in the Rails server mode. How to do that?

I start my tests wit

相关标签:
5条回答
  • 2021-01-30 05:18

    In your test.rb:

    Rails.application.configure do
      ...
      config.logger = ActiveSupport::Logger.new(STDOUT)
    end
    
    0 讨论(0)
  • 2021-01-30 05:21

    set

    config.log_level = :info 
    

    in test environment

    0 讨论(0)
  • 2021-01-30 05:25

    if others answers don't work in your case, please check the 'log level' of your test environment.

    its default is 'debug', which will output the SQL generated by Rails. if it was set to "info", the SQL will be missing.

    0 讨论(0)
  • 2021-01-30 05:33

    By default, all your db queries will be logged already in test mode. They'll be in log/test.log.

    0 讨论(0)
  • 2021-01-30 05:34

    You could try setting the ActiveRecord logger to stdout in your test somewhere. If you're using rspec, maybe in the spec helper?

    ActiveRecord::Base.logger = Logger.new(STDOUT)
    
    0 讨论(0)
提交回复
热议问题