Antworten:
Standardmäßig werden alle Ihre Datenbankabfragen bereits im Testmodus protokolliert. Sie werden in sein log/test.log.
tail -f log/test.log
Sie können versuchen, den ActiveRecord-Logger in Ihrem Test irgendwo auf stdout zu setzen. Wenn Sie rspec verwenden, vielleicht im Spezifikationshelfer?
ActiveRecord::Base.logger = Logger.new(STDOUT)
active_recordenthalten ist, da diese die SQL standardmäßig nicht protokollieren.
STDOUTwurde es neu zugeordnet, und Sie sollten es $stdoutstattdessen verwenden.
Wenn andere Antworten in Ihrem Fall nicht funktionieren, überprüfen Sie bitte die Protokollstufe Ihrer Testumgebung.
Die Standardeinstellung ist "Debug", wodurch die von Rails generierte SQL ausgegeben wird. Wenn es auf "info" gesetzt wurde, fehlt die SQL.
In Ihrem test.rb:
Rails.application.configure do
...
config.logger = ActiveSupport::Logger.new(STDOUT)
end