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
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
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?
źródło
active_record
dołączonym, ponieważ domyślnie nie rejestrują one kodu SQL.STDOUT
został zmieniony i powinieneś użyć$stdout
zamiast tego.zestaw
config.log_level = :info
w środowisku testowym
źródło
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.
źródło
W twoim
test.rb
:Rails.application.configure do ... config.logger = ActiveSupport::Logger.new(STDOUT) end
źródło