कर्मा बनाम टेस्टिंग फ्रेमवर्क जैस्मीन, मोचा, क्विंट [बंद]


258

कुछ सवाल:

  • कर्म और परीक्षण ढांचा X (चमेली, मोचा, क्विट) एक दूसरे से कैसे संबंधित हैं?
  • जावा दुनिया में समतुल्य रूपरेखा क्या है? मैं मानती हूं कि जैस्मिन, मोचा, क्वीनिट ज्यूनीट / टेस्टएनजी के बराबर है। कर्म के बारे में कैसे?
  • क्या मैं कर्म के बिना टेस्टिंग फ्रेमवर्क X (जैसे जैस्मीन) चला सकता हूं?
  • इकाई परीक्षण या एकीकरण / e2e परीक्षण के लिए कर्म है? यह संदर्भ शो यूनिट टेस्ट के लिए है, हालांकि यह कहा जाता है कि यह e2e टेस्ट के लिए है।

जवाबों:


419

कर्म एक ब्राउज़र टेस्ट रनर है।

विचार यह है कि ब्राउज़रों के पास मूल रूप से परीक्षण फ़ाइलों को लोड करने, उन्हें चलाने और परिणामों की रिपोर्ट करने की अवधारणा नहीं है। कर्म क्या है (मोटे तौर पर):

  • परीक्षण करने के लिए "क्लाइंट-साइड" जावास्क्रिप्ट फ़ाइलों की सेवा के लिए एक छोटा सा वेब सर्वर शुरू करना (1)
  • परीक्षण के साथ "क्लाइंट-साइड" जावास्क्रिप्ट फ़ाइलों की सेवा भी करें (या चश्मा, जैसा कि उन्हें अक्सर कहा जाता है) (2)
  • एक कस्टम वेब पेज की सेवा करें जो परीक्षणों के लिए जावास्क्रिप्ट कोड चलाएगा (3)
  • इस पृष्ठ को लोड करने के लिए एक ब्राउज़र शुरू करें (4)
  • सर्वर को परीक्षण के परिणाम की रिपोर्ट करें (5)
  • कर्म फिर से परिणामों को पाठ फ़ाइलों, कंसोल, कुछ भी आपके सीआई सर्वर को पसंद करता है, आदि की रिपोर्ट कर सकता है ...

प्रत्येक भाग को देखते हुए:

(1) वे फाइलें आपकी वास्तविक js फाइलें होंगी; आप कर्म बताएंगे कि उन्हें कैसे लोड किया जाए। यदि आप आवश्यकताएँ का उपयोग करते हैं, तो एक कर्म प्लगइन है, और कुछ कॉन्फ़िगरेशन की आवश्यकता है।

(२) उन परीक्षणों को विभिन्न प्रकार की जावास्क्रिप्ट परीक्षण रूपरेखा (जैस्मीन, क्वनीट, मोचा) में लिखा जा सकता है; यह JS कोड है जो ब्राउज़र में चलाया जाता है।

(3) कस्टम वेब पेज प्रत्येक परीक्षण ढांचे के लिए थोड़ा अलग होगा; यही कारण है कि कर्म में विभिन्न रूपरेखाओं के लिए प्लगइन्स हैं।

(4) कर्मा पेज को कई ब्राउज़रों (FF, Chrome, या हेडलेस ब्राउज़र जैसे PhantomJs) में लॉन्च कर सकता है।

(5) कर्म की रिपोर्ट करना, फिर से, फ्रेमवर्क-निर्भर है, और कर्म प्लगइन्स से निपटना है।

तो आपके सवालों का जवाब देने के लिए:

  • जावा में, अधिकांश लोग JUnit का उपयोग करते हैं जो परीक्षण लिखने और उन्हें चलाने के लिए एक रूपरेखा है, लेकिन इसमें पर्यावरण को विभेदित करने की समस्या नहीं है जिसमें परीक्षण चलाए जाते हैं और जिसमें परीक्षण रिपोर्ट एकत्र होती हैं; कर्म एक ज्यूनिट सूट और एक ज्यूनिट टेस्टरनर के बीच गायब हो जाएगा
  • हां, आप वह सब कुछ कर सकते हैं जो कर्म "हाथ से" करता है - एक रूपरेखा (चमेली, क्यूनिट, मोचा) चुनें और निर्देशों का पालन करें। कर्म का लाभ यह है कि यह एक मानक आउट-ऑफ-द-बॉक्स प्रदान करता है, यदि आप एक मानक सेटअप में हैं।
  • कर्म का उपयोग दोनों यूनिट परीक्षण (चमेली / क्यूनिट / जो भी हो) और एकीकरण परीक्षणों के लिए किया जा सकता है (जो ब्राउज़र को चलाने के लिए वेबड्राइवर की तरह एक और एपीआई का उपयोग करेगा)

59
यह एक ब्लॉग पोस्ट या कुछ के योग्य है।
Willa

कर्मा पेज को कई ब्राउज़रों (FF, Chrome, या हेडलेस ब्राउज़र जैसे PhantomJs।) में लॉन्च कर सकता है? तो क्या जैस्मिन सही है? हम इसे कई
चौखटों

1
@ वांग'लपखरीन आप किसी भी ब्राउज़र के साथ चमेली का उपयोग कर सकते हैं। मेरा मतलब था कि तकनीकी रूप से, कर्म किसी भी ब्राउज़र को लॉन्च कर सकता है, जिसमें आप परीक्षण करना चाहते हैं। लेखन के समय, चमेली वास्तव में शुरू होने वाले ब्राउज़रों के लिए ज़िम्मेदार नहीं थी (मुझे अभी भी नहीं लगता कि यह ऐसा करता है।) उम्मीद है कि यह चीजों को स्पष्ट करता है!
phtrivier

thejsguy.com/2015/01/12/jasmine-vs-mocha-cha-and-sinon.html "जैस्मीन बनाम मोचा, ची, और
सिनॉन

1
@Willa मैंने इस उत्तर के आधार पर एक youtube vid बनाया है youtube.com/watch?v=bJc078szrZA :)
bersling

70

अंतर समझने का एक छोटा तरीका:

सादे जैस्मीन / मोचा के साथ परीक्षण करने वाले लोग सबसे अधिक संभावना है कि वे सभी कोड को नोड वर्चुअल मशीन के साथ चला रहे हैं।

कर्मा को मिश्रण में जोड़ना (अपनी पसंद के मौजूदा ढांचे के ऊपर) आपके परीक्षण सूट को अन्य ब्राउज़रों के इंजन के साथ चलाएगा।

ऐसा करने से आपको ब्राउज़र के वातावरण के साथ मिलने वाले छोटे एक्स्ट्रा मिलते हैं। डोम संबंधित कोड का परीक्षण करना आसान होगा, लेकिन आप नोड इंजन द्वारा दिए गए अतिरिक्त संसाधनों (जैसे फाइल सिस्टम / शेल एक्सेस) को भी छोड़ देंगे।


34

कर्मा की रचना करने वाले व्यक्ति की थीसिस मौजूदा समाधानों की तुलना करने और उनकी तुलना करने में बहुत जानकारीपूर्ण थी, और निश्चित रूप से कर्म का वर्णन करना

https://github.com/karma-runner/karma/blob/master/thesis.pdf

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

संक्षेप में, शायद सवाल कर्म और चमेली या मोचा या क्विट होना चाहिए?


2
आप एक छोटा सा सारांश, लिंक से कर सकते हैं। यह आपके उत्तर को बेहतर बनाता है
विजेता_जॉकर

1
क्या कर्म जेस्ट टेस्ट चला सकता है?
SuperUberDuper

आप जैस्मीन में भी देख सकते हैं? मुझे ऐसा लगता है, लेकिन मुझे याद नहीं है।
वांग'ल पखरीन

@ वांग'ल पखरीन मुझे नहीं पता कि जैस्मिन की घड़ी की कार्यक्षमता है, मैं सिर्फ नोडमॉन का उपयोग करता हूं। "nodemon --exec jasmine" और हर बार जब आप किसी फ़ाइल को सहेजते हैं तो यह परीक्षण चलाएगा।
स्नोफ्रॉगदेव

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