Mam kilka testów RSpec dla moich modeli i chciałbym włączyć rejestrowanie SQL ActiveRecord, tak jak widzę w trybie serwera Rails. Jak to zrobić?
Zaczynam testy od
RAILS_ENV=test bundle exec rspec my/test_spec.rb
Dzięki
Odpowiedzi:
Domyślnie wszystkie zapytania dotyczące bazy danych będą rejestrowane już w trybie testowym. Będą w środku log/test.log
.
tail -f log/test.log
Możesz spróbować ustawić rejestrator ActiveRecord na stdout w swoim teście. Jeśli używasz rspec, może w pomocniku specyfikacji?
ActiveRecord::Base.logger = Logger.new(STDOUT)
active_record
dołączonym, ponieważ domyślnie nie rejestrują one kodu SQL.
STDOUT
został zmieniony i powinieneś użyć $stdout
zamiast tego.
jeśli inne odpowiedzi nie działają w Twoim przypadku, sprawdź „poziom dziennika” swojego środowiska testowego.
jego domyślną wartością jest „debug”, który wyświetli kod SQL wygenerowany przez Railsy. jeśli była ustawiona na „info”, nie będzie kodu SQL.
W twoim test.rb
:
Rails.application.configure do
...
config.logger = ActiveSupport::Logger.new(STDOUT)
end