2012-06-07 20 views
8

ब्राउज़र की स्टाइल कोड के साथ जैस्मीन एचटीएमएल रिपोर्टर चलाने का कोई भी अच्छा तरीका? मैं इस हेडलेस को phantomjs के साथ चलाने में भी सक्षम होना चाहता हूं, इस प्रकार एचटीएमएल रिपोर्टर की आवश्यकता है।जैस्मीन और ब्राउज़र के साथ यूनिट परीक्षण कैसे करें?

उत्तर

4

मुझे नहीं लगता कि अभी तक jasmine-browserify पैकेज है, और यह वास्तव में ब्राउज़र/एनपीएम के काम करने का तरीका नहीं है (वैश्विक निर्यात से बचें)।

अभी के लिए, मैं सिर्फ /node_modules/jasmine-reporters/ext/jasmine.js और jasmine-html.js मेरी <head> के शीर्ष पर शामिल हैं, और एक शीर्ष स्तर spec_entry.js में अपने सभी चश्मा है कि मैं तो एक Browserify बंडल कि मैं सही में बाद में डाल के लिए प्रवेश बिंदु के रूप में उपयोग की आवश्यकता होती है <head>। (ध्यान दें कि यदि प्रविष्टि बिंदु शीर्ष-स्तर नहीं है, तो ब्राउज़र ब्राउज़र में लंबे समय तक चलने वाली, ग्रेनरी बग के कारण आपके पास बुरा समय होगा)।

यह jasmine-node के साथ अच्छी तरह से खेलता है जब तक कि आप वैश्विक document या window की उपस्थिति नहीं मानते। हालांकि, आपको spec_entry.js में अपने चश्मे को पंजीकृत करना याद रखना होगा, जब तक कि आप .spec.js फ़ाइलों के लिए अपनी निर्देशिका को क्रॉल करने के लिए ब्राउज़र को हैक करना न भूलें।

मुझे एक और अधिक सुरुचिपूर्ण समाधान में बहुत दिलचस्पी होगी, हालांकि, यह पारस्परिक रूप से जैस्मीन-नोड और ब्राउज़र के साथ काम करेगा।

+3

हाय, पार्टी के लिए बहुत देर हो चुकी है लेकिन अगर यह है अभी भी आपके लिए सहायक है, मेरा जवाब देखें या https://github.com/amitayd/grunt-browserify-jasmine-node-example –

8

मैंने एक विस्तृत उदाहरण प्रोजेक्ट बनाया है जो जैस्मीन परीक्षण (और अन्य) को संबोधित करता है - https://github.com/amitayd/grunt-browserify-jasmine-node-example देखें। my blog post

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

4

यदि आप grunt-watchify का उपयोग करते हैं, तो spec_entry.js बनाने की कोई आवश्यकता नहीं है। बस अपने चश्मा में की आवश्यकता होती है का उपयोग करें, और उसके बाद घुरघुराना-watchify के साथ अपने चश्मा बंडल:

watchify: { 
     test: { 
      src: './spec/**/*Spec.js', 
      dest: 'spec/spec-bundle.js' 
     } 
    }, 
    jasmine: { 
     test: { 
      options: { 
       specs: 'spec/spec-bundle.js' 
      } 
     } 
    }, 

फिर

grunt.registerTask('test', ['watchify:test','jasmine:test']); 
0

तुम भी कर्म में देखना चाहते हो सकता है के साथ अपने परीक्षण चलाने के। यह सेटअप करने के लिए वास्तव में आसान है और यह परिवर्तनों के लिए देखेगा और आपके परीक्षण को फिर से शुरू करेगा। इस नमूना प्रोजेक्ट को देखें जो ब्राउज़र/प्रतिक्रिया प्रोजेक्ट का परीक्षण करने के लिए कर्म का उपयोग करता है। आपको बस कुछ निर्भरताओं को जोड़ने और karma.conf.js फ़ाइल बनाने की आवश्यकता है।

https://github.com/TYRONEMICHAEL/react-component-boilerplate

1

सब से ऊपर जवाब के रूप में कर रहे हैं थोड़ा पुराना (निश्चित रूप से इसका मतलब यह नहीं है कि वे काम नहीं कर रहे किसी भी अधिक आदि) मैं https://github.com/nikku/karma-browserify इस को इंगित करना चाहते हैं कर्म धावक के लिए एक पूर्वप्रक्रमक है। यह सभी आवश्यक निर्भरताओं के साथ परीक्षण फाइलों को जोड़ती है। इस तरह के बनाया गया ब्राउज़र बंडल कर्म को पास किया जाता है जो कॉन्फ़िगरेशन पर आधार इसे चलाता है। कृपया ध्यान रखें कि आप किसी भी आधुनिक टेस्ट फ्रेमवर्क (जैस्मीन, मोचा ...) और ब्राउजर (प्रेत, क्रोम ..) चुन सकते हैं। शायद यह वही है जो आपको चाहिए :)

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