[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