কম্পিউটার

আপনার ক্ষুদ্রতম ব্যর্থতা তাৎক্ষণিকভাবে দেখার জন্য একটি শর্টকাট

আপনি আপনার পরবর্তী ছোট বৈশিষ্ট্যটি পরীক্ষা করতে চলেছেন, তাই আপনি একটি সম্পূর্ণ ইন্টিগ্রেশন টেস্ট রান শুরু করবেন। আপনি অপেক্ষা করুন, এবং অপেক্ষা করুন, যতক্ষণ না বিন্দুগুলি আপনার স্ক্রীনটি পূর্ণ করে, ততক্ষণ পর্যন্ত…

......FF....

:-(

আপনার পরীক্ষা শেষ হওয়ার আগে আপনার কাছে এখনও কয়েক মিনিট আছে। কিন্তু আপনি যদি আগে থেকেই পরীক্ষা বন্ধ করে দেন, তাহলে আপনার কোন ধারণা থাকবে না কোন পরীক্ষায় ব্যর্থ হয়েছে।

আপনি কি সত্যিই সেই ব্যর্থতাগুলি দেখতে পাওয়ার আগে পুরো রান শেষ হওয়ার জন্য অপেক্ষা করতে হবে?

উদ্ধারে Ctrl-T!

আপনি যদি ম্যাক ব্যবহার করেন, তাহলে আপনার পরীক্ষার ব্যর্থতা তাড়াতাড়ি দেখার একটি উপায় আছে:

Ctrl-T হিট করুন যখন আপনার পরীক্ষা চলছে।

যখন আপনি করবেন, আপনি দেখতে পাবেন বর্তমানে কোন টেস্ট কেস চলছে এবং কতদিন ধরে চলছে। এখন পর্যন্ত কোনো পরীক্ষা ব্যর্থ হলে, আপনি এছাড়াও করবেন সেই ব্যর্থতাগুলি দেখুন, যাতে আপনি আপনার পরবর্তী দৌড়ের আগে সেগুলি ঠিক করতে শুরু করতে পারেন!

এটি ডিবাগিং পরীক্ষার জন্য সত্যিই সহজ যা শুধু হ্যাং হয়। Ctrl-T কোন পরীক্ষা চেষ্টা করছে তা আপনাকে বলবে চালানোর জন্য, যাতে আপনি শুধুমাত্র একটি পরীক্ষাকে আলাদা করতে পারেন এবং এটি ঠিক করতে পারেন৷

অবশেষে, আমি Ctrl-T আঘাত করার অভ্যাস তৈরি করেছি যে কোনো সময় একটি পরীক্ষা শেষ হতে লক্ষণীয়ভাবে দীর্ঘ সময় নেয় (বলুন, একটি সেকেন্ড বা তার বেশি)। এটি আমাকে অনেক ধীরগতির পরীক্ষার দিকে নির্দেশ করেছে যেগুলি আমাকে আরও দ্রুত করতে হবে৷

Ctrl-T কিভাবে কাজ করে?

একটি Mac এ, Ctrl-T INFO নামে একটি বার্তা বা সংকেত পাঠায় , যে কোনো প্রোগ্রাম চালু আছে:

signal_test.rb
puts "Starting..."
trap("INFO") { puts "INFO triggered!" }

loop { print "."; sleep 0.1}
~/Source jweiss$ ruby signal_test.rb
Starting...
........^Tload: 7.14  cmd: ruby 6121 running 0.10u 0.08s
INFO triggered!
.......^Tload: 7.14  cmd: ruby 6121 running 0.10u 0.08s
INFO triggered!
................^Tload: 11.77  cmd: ruby 6121 running 0.10u 0.08s
.INFO triggered!
......^Csignal_test.rb:5:in `sleep': Interrupt
	from signal_test.rb:5:in `block in <main>'
	from signal_test.rb:5:in `loop'
	from signal_test.rb:5:in `<main>'

Minitest INFO সম্পর্কে জানে , এবং পরীক্ষা চালানোর বিষয়ে তথ্য মুদ্রণ করে এর প্রতিক্রিয়া জানায়:

~/Source/rails/activesupport[master] jweiss$ be rake
/usr/local/Cellar/ruby/2.2.0/bin/ruby -w -I"lib:test"  "/usr/local/Cellar/ruby/2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb" "test/**/*_test.rb" 
Run options: --seed 33445

# Running:

.................F........^Tload: 1.62  cmd: ruby 29646 running 4.37u 1.40s
Current results:


  1) Failure:
CleanLoggerTest#test_format_message [/Users/jweiss/Source/rails/activesupport/test/clean_logger_test.rb:13]:
Expected "error\n" to not be equal to "error\n".



Current: DigestUUIDExt#test_invalid_hash_class 0.02s
............................

বেশ সুন্দর!

এটা সম্ভব জেনে আপনি হয়তো ভাবতে পারেন যে অন্য অ্যাপগুলি INFO পরিচালনা করতে পারে :

  • রেলগুলি বর্তমানে চলমান কন্ট্রোলার অ্যাকশন বা কিছু কর্মক্ষমতা পরিসংখ্যান প্রদর্শন করতে পারে৷
  • সাইডিকিক আপনাকে বলতে পারে প্রতিটি কর্মী কি করছে, যাতে আপনি দেখতে পারেন তারা কোথায় আটকে গেছে।

এবং Sidekiq আসলে INFO ব্যবহার করত প্রতিটি থ্রেডের একটি ব্যাকট্রেস মুদ্রণ করতে এটি দৌড়েছে। কিন্তু কারণ INFO লিনাক্সে সমর্থিত নয়, Sidekiq একটি ভিন্ন সংকেতে স্যুইচ করেছে। দুর্ভাগ্যবশত, INFO উপায়ে কীবোর্ড শর্টকাট দ্বারা সেই সংকেতটি ট্রিগার করা যায় না পারেন।

কারণ INFO লিনাক্সে উপলব্ধ নয় (এবং কেউ কেউ বলতে পারে যে INFO ব্যবহার করে এই পদ্ধতিটি সম্পূর্ণ সঠিক নয়, যাইহোক), এই আচরণটি যতটা বিস্তৃত হতে পারে ততটা নয়।

তবুও, এটি কিছুটা অতিরিক্ত সহায়তা যা বিভিন্ন পরিস্থিতিতে উপযোগী হতে পারে। আপনি যদি একটি অ্যাপ তৈরি করেন, তাহলে আগ্রহী ব্যক্তিদের কাছে আপনি কী ধরনের স্ট্যাটাস বার্তা প্রদর্শন করতে পারেন সে সম্পর্কে চিন্তা করা মূল্যবান৷


  1. এই কারণে আপনার ম্যাক ধীর গতিতে চলছে

  2. মাইনক্রাফ্ট ধীর গতিতে চলছে? কিভাবে আপনার ম্যাক

  3. কিভাবে ইনস্টাগ্রামে আপনার কার্যকলাপের স্থিতি লুকাবেন

  4. আপনার নতুন প্লেস্টেশন 4 এ অবিলম্বে পরিবর্তন করার জন্য 5 সেটিংস