Как включить ведение журнала отладки SQL для ActiveRecord в тестах RSpec?


У меня есть некоторые тесты RSpec для моих моделей, и я хотел бы включить ведение журнала SQL ActiveRecord так же, как я вижу в режиме сервера Rails. Как это сделать?

Я начинаю свои тесты с

RAILS_ENV=test bundle exec rspec my/test_spec.rb

спасибо

4 73

4 ответа:

по умолчанию все ваши запросы к БД будут регистрироваться уже в тестовом режиме. Они будут в log/test.log.

вы можете попробовать установить ActiveRecord logger в stdout в вашем тесте где-нибудь. Если вы используете rspec, может быть, в Spec helper?

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

Если другие ответы не работают в вашем случае, пожалуйста, проверьте уровень лог вашей тестовой среде.

его значение по умолчанию - 'debug', который будет выводить SQL, созданный Rails. если он был установлен в "info", SQL будет отсутствовать.

set

config.log_level = :info 

в тестовой среде