Saya memiliki beberapa tes RSpec untuk model saya dan saya ingin mengaktifkan logging SQL ActiveRecord seperti yang saya lihat dalam mode server Rails. Bagaimana cara melakukannya?
Saya memulai tes saya dengan
RAILS_ENV=test bundle exec rspec my/test_spec.rb
Terima kasih
tail -f log/test.log
Anda dapat mencoba menyetel pencatat ActiveRecord ke stdout dalam pengujian Anda di suatu tempat. Jika Anda menggunakan rspec, mungkin di helper spesifikasi?
sumber
active_record
disertakan karena ini tidak mencatat SQL secara default.STDOUT
telah dipetakan ulang, dan Anda harus menggunakannya$stdout
.set
config.log_level = :info
di lingkungan pengujian
sumber
jika orang lain menjawab tidak berfungsi dalam kasus Anda, periksa 'tingkat log' lingkungan pengujian Anda.
defaultnya adalah 'debug', yang akan menampilkan SQL yang dihasilkan oleh Rails. jika disetel ke "info", SQL akan hilang.
sumber
Di Anda
test.rb
:Rails.application.configure do ... config.logger = ActiveSupport::Logger.new(STDOUT) end
sumber