Mocha के साथ जावास्क्रिप्ट का परीक्षण - मैं एक परीक्षण डिबग करने के लिए कंसोल.लॉग का उपयोग कैसे कर सकता हूं?


104

मैं जावास्क्रिप्ट परीक्षण-धावक "मोचा" का उपयोग कर रहा हूं।

मेरे पास एक परीक्षण है जो विफल हो रहा है, इसलिए मैं इसका उपयोग करके डीबग करना चाहूंगा console.log

लेकिन जब परीक्षण चलाए जाते हैं, तो कोई आउटपुट नहीं होता है (केवल मोचा से परीक्षण के परिणाम)। ऐसा लगता है जैसे मोचा ने मेरे console.logआउटपुट पर कब्जा कर लिया है और दबा दिया है !

मुझे अपना आउटपुट दिखाने के लिए मोचा कैसे मिल सकता है? (परीक्षणों में असफल होने के लिए)?

संपादित करें:

भारी माफी! - console.logपरीक्षण के दौरान काम करता है! मैं उम्मीद कर रहा था कि यह आउटपुट को दबाएगा, और मैंने अपने कोड की ठीक से जांच नहीं की। प्रतिक्रिया देने के लिये धन्यवाद। तो ... यह कहा जा रहा है ... शायद यह वास्तव में अच्छा होगा कि उत्तीर्ण होने वाले परीक्षणों के लिए आउटपुट को दबा दें? हम्म ...

संबंधित नोट पर: मैं उपयोग करना चाहता हूं console.logक्योंकि मुझे नोड .js. से कनेक्ट करने के लिए ग्रहण डिबगर प्राप्त करने में बहुत परेशानी हो रही है

क्या मैं अकेला हूँ जो इस मुश्किल को पाता है? आप लोग n.js को डिबग कैसे करते हैं? एक डिबगर के साथ, या console.logबयानों के साथ ?


अच्छा सौदा! :) अभी मैं मोका परीक्षण के माध्यम से बहुत अधिक 'डिबगिंग' नोड हूं। मैं निकट भविष्य में एक समय देख सकता हूँ जब मैं यहाँ कुछ विकल्प निकालना चाहता हूँ: stackoverflow.com/questions/1911015/…
Zach Bonham

मेरा सुझाव है कि आप Node.js के लिए ग्रहण का उपयोग न करें, यह वास्तव में IMO का उपयोग करने के लिए सबसे अच्छा वातावरण नहीं है। JetBrains का WebStorm एक बेहतरीन Node.js IDE है, हालाँकि इसमें पैसे खर्च होते हैं। यदि आप मुफ्त में देख रहे हैं, तो मैं वास्तव में नए विज़ुअल स्टूडियो कोड को पसंद कर रहा हूं, जिसमें नोड डिबगिंग और अन्य चीजें हैं जो नोड विकास को अच्छा बनाती हैं।
dsw88

@ dsw88 - वेबस्टॉर्म के साथ मेरा अनुभव यह है कि जब हमारी फ़ाइल संरचना बड़ी और गहरी होने लगी तो यह धीमा हो गया। मुझे जावा एप्लिकेशन के साथ पुराने दिनों की याद दिला दी।
kirk.burleson

2
इसके अलावा @ dsw88 ने क्या लिखा: VS कोड का उपयोग करें: एक "डीबगर" डालें; अपने कोड में कहीं बयान। अपने परीक्षण की शुरुआत --inspect-brk विकल्प के साथ करें और VS कोड डीबगिंग क्रिया "NodeJs संलग्न करें" का उपयोग करें। डिबगर मोचा स्क्रिप्ट में पहली पंक्ति में शुरू होता है और आपको एक बार फिर से शुरू करना होगा। अगली बार आपका "डिबगर;" बयान दिया जाता है, आप जाने के लिए अच्छे हैं।
फेबियनटी

जवाबों:


49

मोचा विकल्प क्या उपयोग कर रहे हैं?

शायद यह रिपोर्टर (-आर) या यूआई (-यूआई) के साथ कुछ करना है?

console.log(msg);

मेरे टेस्ट रन के दौरान ठीक काम करता है, हालांकि कभी-कभी थोड़ा नासमझ में मिलाया जाता है। संभवतया परीक्षण रन की एस्किंट प्रकृति के कारण।

यहाँ विकल्प हैं (mocha.opts) मैं उपयोग कर रहा हूँ:

--require should
-R spec
--ui bdd

हम्म.. अन्याय का परीक्षण बिना किसी मोचा के किया जाता है console.log। अभी भी काम करता है।


4
कहाँ लॉग () वास्तव में बहुत करने के लिए?
पॉजिटिव

32

यदि आप एसिंक्रोनस कोड का परीक्षण कर रहे हैं, तो आपको done()उस एसिंक्रोनस कोड के कॉलबैक में जगह सुनिश्चित करना होगा । मेरे पास वह मुद्दा था जब http अनुरोध एक परीक्षण एपीआई के लिए अनुरोध करता है।


20

आपने console.logएक उम्मीद के बाद भी अपना काम किया हो सकता है जो विफल हो जाती है और अनियोजित है, इसलिए आपकी लॉग लाइन कभी भी निष्पादित नहीं होती है।


2
हां, यह मेरा मुद्दा था, यह सुझाव देने के लिए धन्यवाद। मैंने कंसोल लॉग्स को असफलता .expect से आगे बढ़ाया, और वे अब दिखाते हैं।
redfox05

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.