web-dev-qa-db-fra.com

Comment activer la journalisation du débogage SQL pour ActiveRecord dans les tests RSpec?

J'ai des tests RSpec pour mes modèles et je voudrais activer la journalisation SQL ActiveRecord comme je le vois en mode serveur Rails. Comment faire?

Je commence mes tests avec

Rails_ENV=test bundle exec rspec my/test_spec.rb

Merci

84
lzap

Par défaut, toutes vos requêtes db seront déjà enregistrées en mode test. Ils seront dans log/test.log.

50
idlefingers

Vous pouvez essayer de paramétrer l'enregistreur ActiveRecord sur stdout dans votre test quelque part. Si vous utilisez rspec, peut-être dans l'aide aux spécifications?

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

ensemble

config.log_level = :info 

en environnement de test

9
Nicolai

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 a été défini sur "info", le SQL sera manquant.

7