2014-09-29 7 views
29

मुझे एक ग्रंट सेटअप मिला है जो कर्म + जैस्मीन और जेएसहिंट का उपयोग करता है। जब भी मैं अपनी spec फ़ाइल पर JSHint चलाता हूं, मुझे "अपरिभाषित" त्रुटियों की एक श्रृंखला मिलती है, जिनमें से अधिकांश जैस्मीन के अंतर्निहित कार्यों के लिए हैं। उदाहरण के लिए:जेएसहिंट सोचता है कि जैस्मीन फ़ंक्शन अपरिभाषित हैं

Running "jshint:test" (jshint) task 

    js/main.spec.js 
     3 |describe("loadMatrix()", function() { 
     ^'describe' is not defined. 
     4 | it("should not assign a value if no arg is passed.", function() { 
      ^'it' is not defined. 

(मैं भी चर और जे एस फ़ाइल है कि मेरी कल्पना के खिलाफ परीक्षण करने के लिए है से कार्यों के लिए कुछ अपरिभाषित त्रुटियों मिलता है, लेकिन मुझे यकीन है कि क्यों है कि नहीं कर रहा हूँ और यह एक अलग हो सकता है मुद्दा।)

मेरी कर्म कॉन्फ़िगरेशन फ़ाइल में frameworks: [ "jasmine" ] है, मेरे पास JSHint के लिए कोई ग्लोबल सेट नहीं है, और मेरे पास .jshintrc फ़ाइल नहीं है क्योंकि मैं इसे ग्रंट में कॉन्फ़िगर कर रहा हूं। मैंने जैस्मीन के कार्यों को मेरी गंटफाइल में जेएसहिंट ग्लोबल्स के रूप में जोड़ने की कोशिश की, लेकिन उन्हें true या false के रूप में सेट करने से कोई फर्क नहीं पड़ता- JSHint भागने पर त्रुटियां अभी भी बनीं।

मुझे क्या याद आ रही है? मैं JSCint को मेरी स्पेक फ़ाइल में जैस्मीन के कार्यों के लिए परिभाषा जांच को छोड़ने के लिए कुछ भी नहीं कर सकता।

+0

आप कर्मा के कौन-सा संस्करण प्रयोग करते हैं? –

+0

कर्म 0.12.23, कर्म-जैस्मीन 0.2.0 के साथ। – Ian128K

उत्तर

22

मामूली सुधार - .jshintrc फ़ाइल में पूर्ववर्ती होना चाहिए।

मेरी Gruntfile.coffee में jshint विकल्पों को यह जोड़कर फिक्स्ड:

predef: [ 
    "jasmine" 
    "describe" 
    "xdescribe" 
    "before" 
    "beforeEach" 
    "after" 
    "afterEach" 
    "it" 
    "xit" 
    "it" 
    "inject" 
    "expect" 
    "spyOn" 
] 

.jshintrc:

"predef": [ 
    "jasmine", 
    "describe", 
    "xdescribe", 
    "before", 
    "beforeEach", 
    "after", 
    "afterEach", 
    "it", 
    "xit", 
    "it", 
    "inject", 
    "expect", 
    "spyOn", 
] 
+1

[लियोन से उत्तर] (http://stackoverflow.com/a/27136840/3116322) स्वीकार्य उत्तर होना चाहिए क्योंकि यह केवल "जैस्मीन" को परिभाषित करने के लिए बहुत छोटा है: सत्य ' – Ande

65

आप बस अपनी .jshintrc फाइल करने के लिए "jasmine": true जोड़ सकते हैं।

+0

https://github.com/ एसबीटी/SBT-JSHint/मुद्दों/13 –

9

मैं Gruntfile.js JSHint कार्य के विकल्प के लिए jasmine: true जोड़ने में यह तय:

jshint: 
{ 
    options: 
    { 
     ... 
     node: true, 
     jasmine: true, 
     ... 
    }, 
    ... 
}, 

ओपी तरह, मैं या तो एक .jshintrc फ़ाइल का उपयोग नहीं कर रहा हूँ।

0

मुझे विश्वास है कि अन्य उत्तरों सही हैं, लेकिन मैंने पहले कभी ऐसा अपवाद नहीं देखा है, हालांकि मैं इसे अब देखता हूं। तब मैंने देखा कि मेरे परीक्षण आईआईएफई में नहीं हैं। इसलिए मैंने उन्हें इस तरह IIFE में स्थानांतरित कर दिया और मुझे अब ऐसी JSHINT चेतावनियां नहीं मिलीं।

(function() { 

    describe('foo',() => { 
    it('bar',() => { 
     expect(1+1).toEqual(2); 
    }); 
    }); 

})(); 
संबंधित मुद्दे