2017-02-21 5 views
8

अद्यतन: टीएल; डॉ; मैंने अपने एनपीएम पैकेज अपडेट किए और कर्म में अब console.log आउटपुट नहीं देख सका। ऐसा लगता है कि यह व्यवहार परिवर्तन के बी/सी है जो केवल console.log आउटपुट LOG_DEBUG स्तर पर दिखाता है और इसे LOG_INFO पर छुपाता है। वह परिवर्तन कब हुआ और क्या इसे वापस करने का कोई तरीका है?console.log किसी भी कर्म परियोजना पर काम नहीं कर रहा है

मूल: जब मैं विंडोज कमांड प्रॉम्प्ट से कर्म चलाता हूं तो मुझे console.log का आउटपुट नहीं दिखाई दे रहा है। मैं इसे कई परियोजनाओं में ठीक से देखता था, लेकिन अब यह अचानक मेरी किसी भी परियोजना में काम नहीं कर रहा है। एक परियोजना में npm update भागने के बाद ऐसा लगता है। मैंने npm update कोई अन्य परियोजना नहीं की, लेकिन वे सभी काम करना बंद कर दिया।

मैंने एक स्वच्छ परियोजना के साथ एक एमसीवीई बनाई और मुझे अभी भी वही व्यवहार दिखाई देता है। यहाँ मेरी स्वच्छ परियोजना में इंस्टॉल किए गए पैकेज की एक सूची (npm list से उत्पादन)

C:\...\mvce>npm list 
[email protected] C:\...\mvce 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
`-- [email protected] 

है और यहाँ config कोड

karma.conf.js 

module.exports = function(config) { 
    config.set({ 
     autoWatch: false, 
     singleRun: true, 
     basePath: ".", 
     frameworks: ["jasmine"], 
     logLevel: "INFO", 
     browsers: ["PhantomJS", "Chrome"], 
     files: ["test.js"] 
    }); 
}; 



test.js 

describe("describe", function(){ 
    it("it", function(){ 
     console.log("test"); 
    }); 
}); 

नोट मैं पहले ही अपनी karma.conf.js को इन दोनों को जोड़ने की कोशिश की है है। वे कोई फर्क नहीं पड़ता।

 client: { 
      captureConsole: true 
     } 

     // or 

     loggers: [ 
      { type: "console" } 
     ] 

नोट: मैं कर्म GitHub पर this issue देखा है, सुझावों में से कोई नहीं मदद करते हैं। साथ ही, यह एक सेटअप w/mocha का वर्णन कर रहा है, मैं जैस्मीन का उपयोग कर रहा हूं - और आधिकारिक कामकाज captureConsole का उपयोग करना है जिसकी मैंने कोशिश की थी।

मैंने इस समस्या के लिए gist भी बनाया।

पर्यावरण की जानकारी:

  • Windows 10 घर w/सभी मौजूदा अपडेट
  • नोड v7.2.1
  • क्रोम 56
+0

कोशिश console.log – ssuperczynski

+0

@ssuperczynski कोई परिवर्तन नहीं। –

उत्तर

26

ऐसा लगता है कि कर्म के v1.5.0 में एक फीचर जोड़ा लॉग स्तर द्वारा फिल्टर कंसोल कैप्चर। git pull request और code changes का एक लिंक यहां दिखा रहा है कि क्या हुआ। मुझे इस नई सुविधा के बारे में दस्तावेज़ों में कोई अपडेट नहीं मिला। कोड परिवर्तनों के आधार पर, नए नियम

आप अपने टर्मिनल आउटपुट पर कौन से संदेश दिखाना चाहिए यह निर्दिष्ट करने के लिए आप अपने कर्म conf फ़ाइल में browserConsoleLogOptions कॉन्फ़िगर कर सकते हैं। प्रदर्शित होने वाले अधिकतम स्तर को निर्दिष्ट करने के लिए level प्रॉपर्टी सेट करें। सभी संदेशों को प्रदर्शित करने के लिए, level को खाली स्ट्रिंग पर सेट करें।

मेरे मामले के लिए, मैं इस तरह यह सेट करने की जरूरत:

browserConsoleLogOptions: { 
    terminal: true, 
    level: "" 
} 

अद्यतन: एक open git issue इस पर चर्चा कर रहे हैं। कर्म 1.5 में वास्तव में दो बदलाव हैं जो यहां मायने रखते हैं।

  1. वे लॉग संदेशों के लिए गंभीरता का क्रम बदल ताकि LOG == DEBUG। गंभीरता LOG>INFO का उपयोग किया गया।इसका मतलब है कि किसी भी प्रोजेक्ट में लॉग स्तर INFO पर सेट है, पुराने संस्करण में console.log संदेश दिखाएगा और उन्हें नए सिस्टम में नहीं दिखाएगा।
  2. जैसा ऊपर बताया गया है, उन्होंने browserConsoleLogOptions के साथ लॉग स्तर द्वारा फ़िल्टर कंसोल को समर्थन जोड़ा।
+0

काफी मददगार। धन्यवाद! –

+0

ओह। के लिए धन्यवाद के तहत 'यह (" यह ", समारोह (किया करने के लिए बदलने के लिए)' और उसके बाद 'किया()' यह! भविष्य पाठकों कृपया ध्यान दें कि यह सेटिंग कॉन्फ़िगरेशन के शीर्ष स्तर पर दिखाई देती है, जो 'ग्राहक' कुंजी के साथ एक सहकर्मी के रूप में दिखाई देती है, इसके भीतर नहीं, जैसा कि यहां पर अधिकांश चर्चाओं द्वारा निहित है (https://github.com/karma- धावक/कर्म-मोचा/मुद्दों/47) – user1272965

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