আরএসপেক পরীক্ষায় অ্যাক্টিভেকর্ডের জন্য কীভাবে আমি এসকিউএল ডিবাগ লগিং চালু করব?


94

আমার মডেলগুলির জন্য আমার কিছু আরএসপেক পরীক্ষা রয়েছে এবং আমি যেমন রেল সার্ভার মোডে দেখি ঠিক তেমন এসকিউএল অ্যাক্টিভেকর্ড লগিংটি চালু করতে চাই। কিভাবে যে কি?

আমি আমার পরীক্ষা দিয়ে শুরু

RAILS_ENV=test bundle exec rspec my/test_spec.rb

ধন্যবাদ

উত্তর:


55

ডিফল্টরূপে, আপনার সমস্ত ডিবি ক্যোয়ারী ইতিমধ্যে পরীক্ষার মোডে লগইন হবে। তারা ভিতরে থাকবে log/test.log


আহ আমি কনসোলে এটি দেখতে চেয়েছি। তবে এটি যথেষ্ট ন্যায্য।
lzap

22
আপনি এটিকে কনসোলে এটি দেখতে পারেনtail -f log/test.log
ইডলিফিংগার্স

আমি বুঝতে পারি নি যে এটি এত সহজ, তাই অ্যাক্টিভসপোর্ট থেকে সমস্ত উপকরণ ডাম্প করার জন্য এক-লাইন যুক্ত করে শেষ করেছেন:ActiveSupport::Notifications.subscribe do |*args| puts *args end
ভজক হার্মেকজ

347

আপনি অ্যাক্টিভেকর্ড লগারটি কোথাও আপনার পরীক্ষায় স্টাডআউটে সেট করার চেষ্টা করতে পারেন। আপনি যদি আরএসপেক ব্যবহার করে থাকেন তবে হয়ত অনুমানের সহায়ক?

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

4
যদি আপনি কেবলমাত্র active_recordঅন্তর্ভুক্ত হিসাবে মণি পরীক্ষা করে থাকেন তবে এগুলি ডিফল্টরূপে এসকিউএল লগ করে না।
ব্রেন্ডন মুইর

আপনি যদি আইআরবি ব্যবহার করেন (রুবির জুপিটার), পুনরায় তৈরি STDOUTকরা হয়েছে, এবং এর $stdoutপরিবর্তে আপনার ব্যবহার করা উচিত ।
ইউলিস বিএন

12

সেট

config.log_level = :info 

পরীক্ষার পরিবেশে


4
বা এটি কনফিগার করুন। লগ_লেভেল =: প্রতিটি এসকিউএল বিবৃতি কার্যকর করে সর্বাধিক আউটপুট পেতে ডিবাগ
জ্যাক Xu

9

যদি অন্যের উত্তরগুলি আপনার ক্ষেত্রে কাজ করে না, দয়া করে আপনার পরীক্ষার পরিবেশের 'লগ স্তর' পরীক্ষা করুন।

এর ডিফল্ট হ'ল 'ডিবাগ', যা রেল দ্বারা উত্পাদিত এসকিউএল আউটপুট দেবে। যদি এটি "তথ্য" তে সেট করা থাকে তবে এসকিউএল অনুপস্থিত হবে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.