[ruby-on-rails] RSpec 테스트에서 ActiveRecord에 대한 SQL 디버그 로깅을 켜려면 어떻게해야합니까?

내 모델에 대한 몇 가지 RSpec 테스트가 있으며 Rails 서버 모드에서 보는 것처럼 SQL ActiveRecord 로깅을 켜고 싶습니다. 그렇게하는 방법?

나는 내 테스트를 시작합니다

RAILS_ENV=test bundle exec rspec my/test_spec.rb

감사



답변

기본적으로 모든 db 쿼리는 이미 테스트 모드로 기록됩니다. 그들은 log/test.log.


답변

테스트 어딘가에서 ActiveRecord 로거를 stdout으로 설정할 수 있습니다. rspec을 사용하는 경우 사양 도우미에 있습니까?

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


답변

세트

config.log_level = :info 

테스트 환경에서


답변

다른 답변이 귀하의 경우에 작동하지 않으면 테스트 환경의 ‘로그 수준’을 확인하십시오.

기본값은 ‘debug’이며 Rails에서 생성 한 SQL을 출력합니다. “info”로 설정된 경우 SQL이 누락됩니다.


답변

귀하의 test.rb:

Rails.application.configure do
  ...
  config.logger = ActiveSupport::Logger.new(STDOUT)
end


답변