J'ai quelques tests RSpec pour mes modèles et je voudrais activer la journalisation SQL ActiveRecord comme je le vois dans le mode serveur Rails. Comment faire ça?
Je commence mes tests avec
RAILS_ENV=test bundle exec rspec my/test_spec.rb
Merci
Réponses:
Par défaut, toutes vos requêtes db seront déjà enregistrées en mode test. Ils seront dedans log/test.log.
tail -f log/test.log
Vous pouvez essayer de configurer l'enregistreur ActiveRecord sur stdout dans votre test quelque part. Si vous utilisez rspec, peut-être dans l'assistant de spécification?
ActiveRecord::Base.logger = Logger.new(STDOUT)
active_recordinclus car ceux-ci ne consignent pas le SQL par défaut.
STDOUTa été remappé et vous devez utiliser à la $stdoutplace.
si d'autres réponses ne fonctionnent pas dans votre cas, veuillez vérifier le «niveau de journalisation» de votre environnement de test.
sa valeur par défaut est «debug», qui affichera le SQL généré par Rails. s'il était défini sur "info", le SQL sera manquant.
Dans votre test.rb:
Rails.application.configure do
...
config.logger = ActiveSupport::Logger.new(STDOUT)
end