Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

Minitest विफलताओं को रियल-टाइम में तुरंत देखें

आप अपनी अगली छोटी सुविधा में चेक इन करने वाले हैं, इसलिए आप एक पूर्ण इंटीग्रेशन टेस्ट रन शुरू करते हैं। आप इंतजार करते हैं, और इंतजार करते हैं, जैसे-जैसे डॉट्स आपकी स्क्रीन भरते हैं, जब तक कि...

......FF.... 

:-(

आपके टेस्ट खत्म होने में अभी कुछ मिनट बाकी हैं। लेकिन अगर आप टेस्ट रन को जल्दी छोड़ देते हैं, तो आपको कोई अंदाजा नहीं होगा कि कौन से टेस्ट विफल हुए।

क्या आपको वास्तव में उन विफलताओं को देखने से पहले पूरे रन के खत्म होने का इंतजार करना होगा?

Ctrl-T बचाव के लिए!

यदि आप मैक का उपयोग कर रहे हैं, तो आपके टेस्ट विफलताओं को जल्दी देखने का एक तरीका है:

अपने टेस्ट चलते समय Ctrl-T दबाएं।

जब आप ऐसा करते हैं, तो आप देखेंगे कि कौन सा टेस्ट केस वर्तमान में चल रहा है, और यह कितने समय से चल रहा है। यदि अब तक कोई टेस्ट विफल हुआ है, तो आप भी उन विफलताओं को देखेंगे, इसलिए आप अगले रन से पहले उन्हें ठीक करने में एक शुरुआत कर सकते हैं!

यह उन टेस्ट को डीबग करने के लिए भी वास्तव में आसान है जो बस लटक जाते हैं। Ctrl-T आपको बताएगा कि कौन सा टेस्ट चलाने की कोशिश कर रहा है, इसलिए आप केवल उस एक टेस्ट को अलग कर सकते हैं और इसे ठीक कर सकते हैं।

अंत में, मैंने Ctrl-T दबाने की आदत बना ली है जब भी कोई टेस्ट खत्म होने में स्पष्ट रूप से लंबा समय लेता है (कहें, एक सेकंड या अधिक)। इसने मुझे बहुत सारे धीमे टेस्ट की ओर इशारा किया जिन्हें मुझे तेज करने की आवश्यकता है।

Ctrl-T कैसे काम करता है?

मैक पर, 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 को कैसे संभाल सकते हैं:

  • Rails वर्तमान में चल रहे कंट्रोलर एक्शन या कुछ प्रदर्शन आँकड़े प्रदर्शित कर सकता है।
  • Sidekiq आपको बता सकता है कि प्रत्येक वर्कर क्या कर रहा है, ताकि आप देख सकें कि वे कहां अटक जाते हैं।

और Sidekiq वास्तव में INFO का उपयोग प्रत्येक थ्रेड के बैकट्रेस को प्रिंट करने के लिए करता था जो यह चलाता था। लेकिन क्योंकि INFO लिनक्स पर समर्थित नहीं है, Sidekiq एक अलग सिग्नल पर स्विच हो गया। दुर्भाग्य से, उस सिग्नल को INFO की तरह कीबोर्ड शॉर्टकट द्वारा ट्रिगर नहीं किया जा सकता।

क्योंकि INFO लिनक्स पर उपलब्ध नहीं है (और कुछ कह सकते हैं कि इस तरह INFO का उपयोग करना पूरी तरह से सही नहीं है, वैसे भी), यह व्यवहार उतना व्यापक नहीं है जितना हो सकता था।

फिर भी, यह थोड़ी अतिरिक्त मदद है जो कई स्थितियों में उपयोगी हो सकती है। यदि आप एक ऐप बना रहे हैं, तो यह सोचने लायक है कि आप ऑन-डिमांड उन लोगों को किस तरह के स्टेटस मैसेज प्रदर्शित कर सकते हैं जो रुचि रखते हैं।

  1. मैक पर Minecraft परफॉर्मेंस बूस्ट करें: लैग और स्लो गेमप्ले के लिए त्वरित सुधार मैक पर Minecraft परफॉर्मेंस बूस्ट करें: लैग और स्लो गेमप्ले के लिए त्वरित सुधार

    2009 में विकसित, Minecraft एक लोकप्रिय ओपन-एंडेड गेम है। इस गेम में, खिलाड़ी घर बनाने, टूल बनाने और लड़ाई करने के लिए अपनी कल्पना का उपयोग करते हैं। वास्तव में, अगर आप एक गेमर हैं और कंप्यूटर गेम खेलना पसंद करते हैं, तो आपने Minecraft खेला होगा। लेकिन इस गेम को इष्टतम तरीके से चलाने के लिए मैक की पर

  1. इंस्टाग्राम एक्टिविटी स्टेटस बंद करें: अधिक गोपनीयता के लिए सरल उपाय इंस्टाग्राम एक्टिविटी स्टेटस बंद करें: अधिक गोपनीयता के लिए सरल उपाय

    क्या आपके बहुत सारे इंस्टाग्राम फॉलोअर्स हैं? क्या आपने कभी महसूस किया है कि उन्हें कैसे पता चलता है कि आप इंस्टाग्राम पर कब एक्टिव हैं? कभी-कभी स्थिति को संभालना मुश्किल हो जाता है जब आपको कई अनजान फॉलोअर्स के मैसेज आने लगते हैं। ऐसी स्थिति से निपटने का सबसे अच्छा तरीका है अपने एक्टिविटी स्टेटस को

  1. PS4 गेमिंग अनुभव को ऑप्टिमाइज़ करने के लिए 5 आवश्यक सेटिंग्स PS4 गेमिंग अनुभव को ऑप्टिमाइज़ करने के लिए 5 आवश्यक सेटिंग्स

    तो, आपको इस क्रिसमस पर नया PS4 मिला, अब क्या? खैर, सबसे पहले बधाई हो कि अब आपके घर में लेटेस्ट प्लेस्टेशन कंसोल है। प्लेस्टेशन 4 तीन बेसिक मॉडल में जारी किया गया है: PS4, PS4 Slim और PS 4 Pro। और अब इस ब्लॉग पोस्ट में हम जिन सेटिंग्स के बारे में बात करने जा रहे हैं, वे प्लेस्टेशन के इन सभी संस्करणों