У мене є кілька тестів RSpec для моїх моделей, і я хотів би ввімкнути ведення журналу SQL ActiveRecord так, як я бачу в режимі сервера Rails. Як це зробити?
Я починаю свої тести з
RAILS_ENV=test bundle exec rspec my/test_spec.rb
Дякую
Відповіді:
За замовчуванням усі ваші запити в базі даних реєструються вже в тестовому режимі. Вони будуть у log/test.log
.
tail -f log/test.log
Ви можете спробувати встановити для реєстратора ActiveRecord значення stdout у вашому тесті. Якщо ви використовуєте rspec, можливо, у помічнику специфікації?
ActiveRecord::Base.logger = Logger.new(STDOUT)
active_record
включеними, оскільки вони не реєструють SQL за замовчуванням.
STDOUT
було переназначено, і $stdout
замість цього слід використовувати .
якщо інші відповіді не працюють у вашому випадку, перевірте "рівень журналу" вашого тестового середовища.
його за замовчуванням - "налагодження", яке видасть SQL, згенерований Rails. якщо для нього встановлено значення "інформація", SQL буде відсутній.
У вашому test.rb
:
Rails.application.configure do
...
config.logger = ActiveSupport::Logger.new(STDOUT)
end