2015-01-15 12 views
6

के लिए आरईपीएल उपकरण मैं रूबी में बाइंडिंग.pry की तरह कुछ करना चाहता हूं, मूल रूप से, मैं अपने कोड में एक लाइन जोड़ने में सक्षम होना चाहता हूं, और वहां एक डीबगर रुकना है, जबकि कर्म चल रहा है मेरी कोणीय/चमेली परीक्षणकोणीय/चमेली/कर्म

it('runs my jasmine test', function() { 
    var a = true; 
    binding.pry // stops code and enters REPL prompt 
    expect(a).toBe(true); 
}); 

परिणाम तो होगा के लिए एक संकेत

#

कहाँ मैं समय में, चर दायरे में उपलब्ध करने के लिए बातें कर सकता है उस बिंदु पर

# a = false;

तब मैं बाहर निकल सकता हूं और निष्पादन जारी रख सकता हूं।

# exit

बस देव उपकरणों के साथ डिबगिंग तरह

, लेकिन मैं एक कर्म प्रक्रिया के तहत ब्राउज़र पर्यावरण के इस बाहर और टर्मिनल के अंदर करना चाहते हैं। मुझे https://github.com/alidavut/locus भी मिला है, हालांकि यह कर्म के तहत काम नहीं कर रहा है।

उत्तर

3

मैं कर्म प्रक्रिया में एक repl शुरू करने के लिए किसी भी तरह से के बारे में पता नहीं कर रहा हूँ, लेकिन लिखने आप क्या कर सकते हैं बस है:

debugger; 

बिंदु है जहां आप डीबग करना चाहते हैं पर। फिर, यदि आपके पास ब्राउज़र के देव उपकरण पहले से ही खोलते हैं तो उस पंक्ति को निष्पादित किया जाता है, तो निष्पादन रोक देगा और आप "घड़ी अभिव्यक्ति" का उपयोग करने में सक्षम होंगे जो आपके लिए पर्याप्त हो सकता है। आपके पास कॉल स्टैक और सभी स्थानीय चर तक पहुंच है। आप घड़ी अभिव्यक्ति में स्थानीय चर को भी असाइन कर सकते हैं और जब आप निष्पादन फिर से शुरू करेंगे तो नए मान बने रहेंगे।

मैंने केवल क्रोम पर इसका परीक्षण किया है। मुझे क्या करना है:

  1. में debugger; बयान रखो
  2. प्रारंभ कर्म।।
  3. क्रोम देव उपकरण खोलें।
  4. देखे गए कर्म फ़ाइलों में से एक को सहेजें (इसलिए अब परीक्षण पहले से ही देव उपकरण के साथ फिर से चलेंगे)।
  5. लाभ!

कर्म पक्ष पर एक आरईपीएल बनाना बहुत अधिक प्रयास की आवश्यकता है क्योंकि ब्राउज़र पर सभी टेस्ट कोड निष्पादित किए जाते हैं। कर्म प्रक्रिया से एक आरईपीएल को नियंत्रित करने के लिए आपको ब्राउज़र से बात करने के लिए सेट किए गए सॉकेट के माध्यम से संवाद करने के लिए ईवेंट सेट अप करने की आवश्यकता होगी। ऐसा करने योग्य होना चाहिए हालांकि आप इतने इच्छुक हैं।संपादित करें: वास्तव में, ऐसा करने के लिए आपको अभी भी किसी विशेष कथन पर जावास्क्रिप्ट ब्लॉक निष्पादन करने में सक्षम होना चाहिए, और मुझे पूरा यकीन है कि debugger; ऐसा करने का एकमात्र तरीका है।

+0

दुर्भाग्य से डीबगर कमांड लाइन पर काम नहीं करता है। फैंटॉमजेएस के साथ काम नहीं करता है। नोडजेएस/गल्प/अन्य कमांड लाइन आधारित जावास्क्रिप्ट सामान के तहत काम नहीं करता है। – Cosmin

+0

क्या आपने '--remote-debugger' के साथ फ़ैंटॉमजेएस लॉन्च करने का प्रयास किया है? http://phantomjs.org/troubleshooting.html –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^