कर्म एक ब्राउज़र टेस्ट रनर है।
विचार यह है कि ब्राउज़रों के पास मूल रूप से परीक्षण फ़ाइलों को लोड करने, उन्हें चलाने और परिणामों की रिपोर्ट करने की अवधारणा नहीं है। कर्म क्या है (मोटे तौर पर):
- परीक्षण करने के लिए "क्लाइंट-साइड" जावास्क्रिप्ट फ़ाइलों की सेवा के लिए एक छोटा सा वेब सर्वर शुरू करना (1)
- परीक्षण के साथ "क्लाइंट-साइड" जावास्क्रिप्ट फ़ाइलों की सेवा भी करें (या चश्मा, जैसा कि उन्हें अक्सर कहा जाता है) (2)
- एक कस्टम वेब पेज की सेवा करें जो परीक्षणों के लिए जावास्क्रिप्ट कोड चलाएगा (3)
- इस पृष्ठ को लोड करने के लिए एक ब्राउज़र शुरू करें (4)
- सर्वर को परीक्षण के परिणाम की रिपोर्ट करें (5)
- कर्म फिर से परिणामों को पाठ फ़ाइलों, कंसोल, कुछ भी आपके सीआई सर्वर को पसंद करता है, आदि की रिपोर्ट कर सकता है ...
प्रत्येक भाग को देखते हुए:
(1) वे फाइलें आपकी वास्तविक js फाइलें होंगी; आप कर्म बताएंगे कि उन्हें कैसे लोड किया जाए। यदि आप आवश्यकताएँ का उपयोग करते हैं, तो एक कर्म प्लगइन है, और कुछ कॉन्फ़िगरेशन की आवश्यकता है।
(२) उन परीक्षणों को विभिन्न प्रकार की जावास्क्रिप्ट परीक्षण रूपरेखा (जैस्मीन, क्वनीट, मोचा) में लिखा जा सकता है; यह JS कोड है जो ब्राउज़र में चलाया जाता है।
(3) कस्टम वेब पेज प्रत्येक परीक्षण ढांचे के लिए थोड़ा अलग होगा; यही कारण है कि कर्म में विभिन्न रूपरेखाओं के लिए प्लगइन्स हैं।
(4) कर्मा पेज को कई ब्राउज़रों (FF, Chrome, या हेडलेस ब्राउज़र जैसे PhantomJs) में लॉन्च कर सकता है।
(5) कर्म की रिपोर्ट करना, फिर से, फ्रेमवर्क-निर्भर है, और कर्म प्लगइन्स से निपटना है।
तो आपके सवालों का जवाब देने के लिए:
- जावा में, अधिकांश लोग JUnit का उपयोग करते हैं जो परीक्षण लिखने और उन्हें चलाने के लिए एक रूपरेखा है, लेकिन इसमें पर्यावरण को विभेदित करने की समस्या नहीं है जिसमें परीक्षण चलाए जाते हैं और जिसमें परीक्षण रिपोर्ट एकत्र होती हैं; कर्म एक ज्यूनिट सूट और एक ज्यूनिट टेस्टरनर के बीच गायब हो जाएगा
- हां, आप वह सब कुछ कर सकते हैं जो कर्म "हाथ से" करता है - एक रूपरेखा (चमेली, क्यूनिट, मोचा) चुनें और निर्देशों का पालन करें। कर्म का लाभ यह है कि यह एक मानक आउट-ऑफ-द-बॉक्स प्रदान करता है, यदि आप एक मानक सेटअप में हैं।
- कर्म का उपयोग दोनों यूनिट परीक्षण (चमेली / क्यूनिट / जो भी हो) और एकीकरण परीक्षणों के लिए किया जा सकता है (जो ब्राउज़र को चलाने के लिए वेबड्राइवर की तरह एक और एपीआई का उपयोग करेगा)