আমার মডেলগুলির জন্য আমার কিছু আরএসপেক পরীক্ষা রয়েছে এবং আমি যেমন রেল সার্ভার মোডে দেখি ঠিক তেমন এসকিউএল অ্যাক্টিভেকর্ড লগিংটি চালু করতে চাই। কিভাবে যে কি?
আমি আমার পরীক্ষা দিয়ে শুরু
RAILS_ENV=test bundle exec rspec my/test_spec.rb
ধন্যবাদ
উত্তর:
ডিফল্টরূপে, আপনার সমস্ত ডিবি ক্যোয়ারী ইতিমধ্যে পরীক্ষার মোডে লগইন হবে। তারা ভিতরে থাকবে log/test.log
।
tail -f log/test.log
ActiveSupport::Notifications.subscribe do |*args| puts *args end
আপনি অ্যাক্টিভেকর্ড লগারটি কোথাও আপনার পরীক্ষায় স্টাডআউটে সেট করার চেষ্টা করতে পারেন। আপনি যদি আরএসপেক ব্যবহার করে থাকেন তবে হয়ত অনুমানের সহায়ক?
ActiveRecord::Base.logger = Logger.new(STDOUT)
active_record
অন্তর্ভুক্ত হিসাবে মণি পরীক্ষা করে থাকেন তবে এগুলি ডিফল্টরূপে এসকিউএল লগ করে না।
STDOUT
করা হয়েছে, এবং এর $stdout
পরিবর্তে আপনার ব্যবহার করা উচিত ।
যদি অন্যের উত্তরগুলি আপনার ক্ষেত্রে কাজ করে না, দয়া করে আপনার পরীক্ষার পরিবেশের 'লগ স্তর' পরীক্ষা করুন।
এর ডিফল্ট হ'ল 'ডিবাগ', যা রেল দ্বারা উত্পাদিত এসকিউএল আউটপুট দেবে। যদি এটি "তথ্য" তে সেট করা থাকে তবে এসকিউএল অনুপস্থিত হবে।
আপনার test.rb
:
Rails.application.configure do
...
config.logger = ActiveSupport::Logger.new(STDOUT)
end