multiple ways execute junit tests
यह ट्यूटोरियल JUnit परीक्षणों को निष्पादित करने के कई तरीके दिखाता है जैसे कि एक JUnit टेस्ट के रूप में रनिंग, शॉर्टकट कीज़ का उपयोग करना, या कमांड-लाइन से JUnit टेस्ट चलाना, आदि:
हमने देखा कि बुनियादी JUnit परीक्षण मामलों को कैसे लिखा जाए और हमारे पिछले ट्यूटोरियल में JUnit के लिए एक अच्छी प्रोग्रामिंग प्रथाओं में से एक के रूप में एक परीक्षण स्थिरता दृष्टिकोण है।
इस ट्यूटोरियल में, आइए हम उन विभिन्न तरीकों पर एक नज़र डालें, जिनका उपयोग हम JUnit के परीक्षण को निष्पादित करने के लिए कर सकते हैं। इन परीक्षण मामलों को चलाने के लिए उपलब्ध विकल्पों की संख्या को देखकर आपको आश्चर्य होगा।
=> यहाँ सरल JUnit प्रशिक्षण श्रृंखला देखें।
आप क्या सीखेंगे:
- JUnit टेस्ट को निष्पादित करने के विभिन्न तरीके
- # 1) ज्यूनिट टेस्ट के रूप में रन
- # 2) अंतिम निष्पादित JUnit टेस्ट चलाएं मेनू विकल्प
- # 3) शॉर्टकट कुंजियों का उपयोग करके चलाएँ
- # 4) एक कक्षा में केवल एक टेस्ट विधि चलाएँ
- # 5) कमांड लाइन से जनीत टेस्ट चलाएं
- # 6) टेस्टनर क्लास का उपयोग करके टेस्ट सूट चलाएं
- # 7) मावेन का उपयोग करके ज्यूनिट टेस्ट के मामले चलाएं
- निष्कर्ष
- अनुशंसित पाठ
JUnit टेस्ट को निष्पादित करने के विभिन्न तरीके
JUnit परीक्षणों को निष्पादित करने के लिए, ऐसे कुछ तरीके हैं, जिसमें आप निम्नलिखित विकल्पों के माध्यम से एक या एक से अधिक परीक्षण विधि के साथ एक एकल वर्ग फ़ाइल चला सकते हैं:
- ‘JUnit परीक्षण के विकल्प के रूप में चलाएँ।
- मेनू विकल्प के माध्यम से अंतिम निष्पादित JUnit परीक्षण चलाएं।
- शॉर्टकट कुंजियों का उपयोग करके चलाएं।
- एक कक्षा में केवल एक ही परीक्षण विधि चलाएँ।
- कमांड लाइन के माध्यम से चलाएं।
- Testrunner वर्ग फ़ाइल का उपयोग करके चलाएँ।
- मावेन के माध्यम से भी चलाएं।
ध्यान दें: मावेन के माध्यम से JUnit परीक्षण निष्पादन JUnit मावेन के लिए एक अलग ट्यूटोरियल में विचार किया जाएगा।
बिंदु को दोहराते हुए, इस ट्यूटोरियल में, हम यह जानेंगे कि एक परीक्षण सूट में कई परीक्षणों को एक साथ कैसे रखा जा सकता है और एक सूट को विभिन्न तरीकों से कैसे चलाया जा सकता है। इसके अलावा, यह कुछ प्रासंगिक और संबंधित अतिरिक्त जानकारी का विस्तार करेगा।
# 1) ज्यूनिट टेस्ट के रूप में रन
सबसे आसान तरीका है जिसमें आप JUnit परीक्षण निष्पादित कर सकते हैं:
विधि 1:
- स्क्रिप्ट दृश्य में कक्षा फ़ाइल पर राइट-क्लिक करें
- चुनते हैं रन के रूप में -> JUnit टेस्ट
- वर्ग फ़ाइल निष्पादित करता है।
विधि 2:
- इसी तरह, आप पैकेज एक्सप्लोरर दृश्य से वर्ग फ़ाइल का चयन कर सकते हैं
- फ़ाइल को राइट-क्लिक करें
- चुनते हैं रन के रूप में -> JUnit टेस्ट
- वर्ग फ़ाइल निष्पादित करता है।
ध्यान दें: इस तरह आप एक समय में एक वर्ग फ़ाइल निष्पादित कर सकते हैं।
# 2) अंतिम निष्पादित JUnit टेस्ट चलाएं मेनू विकल्प
आप संपादक में एक वर्ग फ़ाइल खुली रखकर एक JUnit वर्ग फ़ाइल चला सकते हैं। के शीर्ष मेनू पर जाएँ ग्रहण => रन => रन चुनें । विकल्प भागो -> भागो मूल रूप से उस परीक्षा का पुनर्मूल्यांकन करें जो आपने अंतिम बार चलाई थी।
आइए कैसे बेहतर तरीके से स्पष्टता के लिए कई तरीकों / परीक्षणों के साथ एक JUnit वर्ग पर विचार करें भागो-> भागो काम करता है:
- परिद्रश्य 1 : अगर आपने ए एकल विधि @Test के साथ, फिर जब आप क्लिक करें भागो-> भागो , एकल विधि जो पिछली बार चली थी वह केवल इस बार ही चलेगी और संपूर्ण JUnit वर्ग नहीं।
- दृश्य २ :जबकि आपने चलाया था पूरी कक्षा पहले, भागो-> भागो पूरी कक्षा की फाइल फिर से आ जाएगी।
अब जब हम जानते हैं कि रन-> रन उस परीक्षण को चलाता है जिसे आपने अंतिम बार चलाया था, यह हमें एक पर लाता है सवाल यदि आप Run-> रन विकल्प की वरीयता बदल सकते हैं?
प्रश्न का उत्तर हां है, रन-> रन विकल्प की प्राथमिकता को बदला जा सकता है। Run-> Run से जुड़ा एक निश्चित कॉन्फ़िगरेशन है।
यहाँ है कि तुम कैसे कर सकते हैं:
सेवा मेरे) ग्रहण की रन सेटिंग मूल रूप से चूक जाती है यदि यह प्रशंसनीय है तो चयनित संसाधन या सक्रिय संपादक चलाएं ।
तो, डिफ़ॉल्ट सेटिंग क्या है - ‘चयनित संसाधन या सक्रिय संपादक को चलाएं यदि उसका प्रशंसनीय कार्य करें’?
इसका उत्तर यह है कि यह आपके द्वारा पिछले लॉन्च किए गए एप्लिकेशन को निष्पादित नहीं करेगा, बल्कि इसके लिए अंतिम लॉन्च किए गए रीरुन का पालन करेगा। सक्रिय संपादक ।
बी) फिर आप डिफ़ॉल्ट प्राथमिकता को कैसे बदलते हैं?
इसका उत्तर यह है कि आपके द्वारा लॉन्च किए गए अंतिम एप्लिकेशन को चलाने के लिए आप ग्रहण में डिफ़ॉल्ट प्राथमिकता को बदल सकते हैं सक्रिय संपादक के बावजूद आपके पास।
नीचे बताया गया है कि आप रन -> रन का उपयोग करके रन विकल्प की प्राथमिकता को कैसे बदलते हैं:
- पर जाए विंडोज => वरीयताएँ => रन / डिबग => लॉन्चिंग
- ‘लॉन्च ऑपरेशन’ में एक डिफ़ॉल्ट रेडियो बटन है - ' पहले लॉन्च किए गए एप्लिकेशन को लॉन्च करें ' दूसरे विकल्प के तहत चयनित ‘ चयनित संसाधन या सक्रिय संपादक लॉन्च करें। यदि प्रशंसनीय नहीं है : '।
- आपको इस प्राथमिकता को पहले रेडियो बटन यानि कि पहले बदलना होगा। ' हमेशा पहले लॉन्च किए गए एप्लिकेशन को लॉन्च करें '।
# 3) शॉर्टकट कुंजियों का उपयोग करके चलाएँ
आप स्क्रिप्ट दृश्य या पैकेज एक्सप्लोरर दृश्य से वर्ग फ़ाइल का चयन कर सकते हैं, और JUnit परीक्षणों को निष्पादित करने के लिए नीचे शॉर्टकट कुंजियों का उपयोग कर सकते हैं:
- कुंजी दबाएं ALT + SHIFT + X, T JUnit क्लास फ़ाइल निष्पादित करने के लिए।
- इसका एक विकल्प प्रेस होगा ALT + R फिर CTRL + F11 एक JUnit वर्ग फ़ाइल निष्पादित करने के लिए। ALT + R फिर CTRL + F11 मेनू विकल्प के लिए शॉर्टकट है भागो -> भागो
# 4) एक कक्षा में केवल एक टेस्ट विधि चलाएँ
कभी-कभी, आप एकल JUnit परीक्षण विधि चलाना चाह सकते हैं।
मामले में, JUnit वर्ग फ़ाइल के अंदर एक से अधिक विधि है:
- आप स्क्रिप्ट दृश्य के अंदर विधि के नाम पर अपने कर्सर को चुन सकते हैं या रख सकते हैं।
- ऊपर बताई गई शॉर्टकट कुंजियों का उपयोग करें या केवल आपके द्वारा चुनी गई विधि को निष्पादित करने के लिए ऊपर दिए गए विकल्प।
ध्यान दें: ALT + SHIFT + X, T चयनित विधियों को अपेक्षित रूप से चला सकता है। हालाँकि, यदि आप एक JUnit वर्ग में एक विशिष्ट विधि चलाना चाहते हैं, तो यह @Test के साथ एनोटेट किया गया एक परीक्षण होना चाहिए अन्यथा यह आरंभीकरण त्रुटि दिखाता है।
दूसरे शब्दों में, यदि आप @Before या @After (@Test के अलावा कोई भी एनोटेशन) के तहत तरीकों का चयन करते हैं, तो विशिष्ट विधि निष्पादन में त्रुटि होगी।
# 5) कमांड लाइन से जनीत टेस्ट चलाएं
जैसे आप कमांड लाइन के माध्यम से किसी भी जावा क्लास की फाइलें चलाते हैं, आप कमांड लाइन के माध्यम से जुनाइट क्लास की फाइलों को संकलित और चला भी सकते हैं।
हम कमांड लाइन के माध्यम से JUnit परीक्षण कैसे चला सकते हैं, इसकी समझ पाने के लिए हम नीचे के उप-विषयों को कवर करेंगे:
- कमांड लाइन में JUnit टेस्ट कैसे संकलित करें?
- कमांड लाइन में JUnit टेस्ट कैसे चलाएं?
- कमांड-लाइन निष्पादन पर अतिरिक्त जानकारी।
- Javac कमांड के लिए अपरिचित कमांड त्रुटि को कैसे ठीक करें?
- कमांड लाइन का उपयोग करके परीक्षण चलाने के लाभ।
# 5.1) कमांड लाइन में ज्यूनिट परीक्षा कैसे संकलित करें?
कमांड प्रॉम्प्ट के माध्यम से JUnit क्लास फ़ाइल को संकलित करने और चलाने की पूर्व शर्त है:
- सबसे पहले संबंधित JUnit जार फ़ाइलों को classpath में जोड़ें।
- वातावरण चर सेट करें जैसा कि इसमें उल्लेख किया गया था JUnit का सेटअप ट्यूटोरियल।
- फिर एक JUnit क्लास फ़ाइल संकलित करें।
- कमांड लाइन के माध्यम से JUnit क्लास फ़ाइल संकलित करने का सिंटैक्स है:
javac -cp junit-4.0.0.jar;. JUnitProgram.java
यहाँ, javac जावा कंपाइलर है जो -cp विकल्प का उपयोग करता है।
आदेश javac -cp निम्नलिखित मापदंडों के लिए लग रहा है:
- JUnit जार फ़ाइल एक अर्धविराम के बाद है।
- निर्देशिका का स्रोत जिसमें स्रोत फ़ाइल मौजूद है।
- वर्ग फ़ाइल नाम
ऊपर दिए गए सिंटैक्स में, डॉट (?) का क्या अर्थ है?
हमने निर्देशिका के संपूर्ण पथ के स्थान पर एक बिंदु का उल्लेख किया है।
डॉट का तात्पर्य है कि:
- Classpath में पहले से जावा स्रोत फ़ाइलों के लिए वर्तमान निर्देशिका शामिल है।
- JVM (जावा वर्चुअल मशीन) स्वचालित रूप से मानती है कि वर्तमान निर्देशिका वह है जहाँ स्रोत फ़ाइलों को रखा जाता है।
- तब JVM वहां उल्लिखित JUnit फ़ाइल नाम खोजता है। फ़ाइल नाम संकलन कमांड में दिया गया अंतिम पैरामीटर है।
आप निम्न चरणों के माध्यम से -pp में जाने वाले मापदंडों की जाँच कर सकते हैं:
- कमांड प्रॉम्प्ट खोलें।
- Javac टाइप करें और ENTER दबाएँ।
- सभी प्रासंगिक विकल्प -cp सहित दिखाते हैं। आप पाएंगे कि -pp एक पैरामीटर के रूप में जाता है जहाँ पथ श्रेणी की फ़ाइल पथ है जिसे JVM खोजता है।
नीचे स्क्रीनशॉट:
एक बार में एकाधिक फ़ाइलों को संकलित करने के लिए कैसे?
कई JUnit परीक्षण फ़ाइलों को एक बार रिक्त स्थान के साथ फ़ाइल नामों को अलग करके संकलित किया जा सकता है।
नीचे एक उदाहरण दिया गया है जहाँ आप जावा फाइल को संकलित करते हैं JUnitProgram और DemoTest:
javac -cp junit-4.0.0.jar;. JUnitProgram.java demoTest.java
# 5.2) कमांड लाइन से जनीत टेस्ट कैसे चलाया जाता है?
जेवैक की तरह जावा कंपाइलर का भी इस्तेमाल किया जाता है java -cp JUnit क्लासेस सहित Java क्लास फाइल्स को चलाने के लिए उपयोग किया जाता है।
नीचे वाक्यविन्यास है जिसका आप अनुसरण कर सकते हैं:
java -cp junit-4.0.0.jar;. JUnitProgram demoTest
यह आदेश JUnitProgram.java और DemoTest.java दोनों फाइलों को एक के बाद एक निष्पादित करता है।
# 5.3) 'कमांड-लाइन निष्पादन पर अतिरिक्त जानकारी'।
कैसे एक नकली ईमेल पाने के लिए
यहाँ पर कुछ अतिरिक्त जानकारी दी गई है कैसे javac कमांड के साथ एक त्रुटि को ठीक करने के लिए तथा क्यों कमांड लाइन रन विकल्प का उपयोग करें
# 5.3.1) मैं javac कमांड के लिए अपरिचित कमांड त्रुटि कैसे ठीक करूं?
हम में से अधिकांश इस मामले को निष्पादित करने की कोशिश करते हुए सामना करेंगे जेवैक कमांड लाइन के माध्यम से कमांड। मेरे साथ भी ऐसा हुआ है; इसलिए हमने इसे यहां पेन करने के बारे में सोचा।
सेवा मेरे) हमने कमांड दर्ज किया जेवैक और दबाया दर्ज कमांड प्रॉम्प्ट पर।
बी) त्रुटि संदेश - javac को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है नीचे दिखाया गया है:
यह वह जगह है जहां कमांड लाइन से जावा वर्ग की फाइलों का आपका संकलन शुरू होता है। इसलिए, त्रुटि वास्तव में चिंता का विषय है और इसे अनदेखा नहीं किया जा सकता है।
समस्या को ठीक करने के लिए, निम्न चरणों का पालन करें और यहाँ है!!! आप देखते हैं कि त्रुटि दूर हो गई है:
- मूलभूत जावा फ़ाइल का उपयोग करके इस प्रक्रिया को डेमो करें। पहला कदम जो आप कर सकते हैं, वह एक बुनियादी जावा वर्ग है जैसे : 'कैलक्यूलेटर.जावा'
- हम विंडोज एक्सप्लोरर से कैलकुलेट.जेवा का पता लगाएंगे और पथ को कॉपी करेंगे।
- आपके द्वारा प्रतिलिपि किए गए पथ (स्रोत फ़ाइल पथ) में कमांड प्रॉम्प्ट में निर्देशिका बदलें। निर्देशिका को बदलने के लिए सीडी का उपयोग करें।
- अब PATH को कमांड का उपयोग करके jdk बिन फ़ोल्डर में सेट करें।
PATH = सेट करें और ENTER दबाएँ।
- यहाँ, jdk पथ C: Program Files Java jdk1.8.0_181 bin है। इसलिए, हमने तदनुसार मार्ग निर्धारित किया है। परिणामी आदेश के बाद ENTER दबाने पर कुछ नहीं दिखा।
- अब, सत्यापित करें कि JVM कमांड को पहचानता है या नहीं जेवैक कमांड javac दर्ज करके और ENTER दबाकर।
-
- यदि यह कमांड को पहचानता है, तो परिणाम के रूप में javac के लिए वैध विकल्पों का एक सेट प्रदर्शित करता है।
- और त्रुटि फिर दिखाई देगी।
नीचे दिए गए एक स्क्रीनशॉट में दिखाया गया है कि हमने सफलतापूर्वक त्रुटि से छुटकारा पा लिया है।
आइए यहां एक आवश्यक प्रश्न को टालने की कोशिश न करें:
Jdk बिन फोल्डर का रास्ता तय करने के बाद JVM ने javac कमांड को क्यों पहचाना?
हमें यकीन है कि आपके मन में भी यह सवाल होगा। नीचे दिया गया उत्तर है।
- Jdk बिन फ़ोल्डर में javac कमांड के लिए सभी लाइब्रेरी हैं। इसलिए, यही कारण है कि, जब आप तदनुसार मार्ग निर्धारित करते हैं, तो जेवीएम अब बिना किसी मुद्दे के जेवैक कमांड को पहचानने में सक्षम है।
- देखें javac फ़ोल्डर नीचे की छवि में jdk बिन के नीचे।
- फिर आप कमांड लाइन का उपयोग करके 'जावा कंपाइल और रन' कमांड चला सकते हैं। इसके अलावा, CLASSPATH वैरिएबल को उचित रूप से सेट करना भी याद रखें। जावा फ़ाइलों और JUnit फ़ाइलों के लिए क्रमशः JAVA_HOME और JUNIT_HOME चर।
# 5.3.2) कमांड लाइन का उपयोग करके टेस्ट चलाने का लाभ:
आइए शीघ्रता से चर्चा करते हैं, कमांड लाइन के माध्यम से जावा / जेनेट परीक्षण चलाने का लाभ।
जैसा कि आप पहले से ही जानते हैं, कमांड लाइन के माध्यम से क्लास फ़ाइलों के निष्पादन पर कोई कठोर और तेज़ नियम नहीं है। यह सिर्फ एक वैकल्पिक तरीका है, जिस पर आप वर्ग फ़ाइलों के संकलन और निष्पादन का प्रबंधन कर सकते हैं।
यदि आप पूछते हैं कि कमांड लाइन के माध्यम से JUnit परीक्षणों के निष्पादन के बारे में जानने में कोई विशेष लाभ है, तो, हम कहेंगे 'निश्चित रूप से, हाँ'।
'हां' का कारण नीचे दिया गया है:
- चरणों की ये सभी श्रृंखलाएं जो हमने ऊपर की थीं; नोटपैड में जोड़ा जा सकता है और एक बैच फ़ाइल में परिवर्तित किया जा सकता है।
- अब, जब आप इस बैच फ़ाइल को एक डबल क्लिक के साथ चलाते हैं, तो यह बैच फ़ाइल में नामित कई JUnit परीक्षण फ़ाइलों के संकलन और निष्पादन को ट्रिगर कर सकता है।
एक जावा फ़ाइल के संकलन और निष्पादन के लिए एक बैच फ़ाइल होने का क्या लाभ है?
- एक बैच / जार फ़ाइल उपयोगकर्ता के अनुकूल उपयोगिता की तरह काम कर सकती है जो किसी को भी कोड के आंतरिक तर्क से अनजान बना सकती है, और कई परीक्षण मामलों को बहुत आसानी से निष्पादित कर सकती है।
- यह इन परीक्षण निष्पादन नौकरियों को करने के लिए एक विशेष डेवलपर या QA की आवश्यकता को समाप्त कर सकता है। निष्पादन कार्य को कौशल की कमी के बारे में परेशान किए बिना किसी भी संसाधन को सौंपा जा सकता है।
अगले वैकल्पिक विकल्प में, हम अपने JUnit परीक्षण मामलों को निष्पादित करने का एक और लाभप्रद और सराहनीय तरीका देखेंगे।
# 6) टेस्टनर क्लास का उपयोग करके टेस्ट सूट चलाएं
वास्तविक समय के परिदृश्यों में, एक समय में एक टेस्टकेस को निष्पादित करना सबसे कम पसंदीदा विकल्प है।
- हमारे पास ऐसे मामले हैं जिनमें हमें संबंधित / असंबंधित परीक्षण मामलों का एक समूह चलाने की आवश्यकता है।
- उदाहरण के लिए, हमें प्रतिगमन परीक्षण स्वीट्स या स्मोक टेस्ट सूट बनाने और निष्पादित करने की आवश्यकता हो सकती है।
अब हम परीक्षण सूट बनाने और सुइट को निष्पादित करने के लिए उपयोग किए जाने वाले विभिन्न एनोटेशन के कार्यान्वयन के बारे में जानेंगे।
टेस्ट रनर का उपयोग करके टेस्ट सूट को निष्पादित करने की समग्र प्रक्रिया निम्न वर्कफ़्लो के अनुसार है:
- JUnit वर्ग 1, JUnit वर्ग 2,… बनाएँ। JUnit वर्ग एन।
- टेस्ट मामलों की जाँच करते हुए टेस्ट सूट क्लास फ़ाइल बनाएँ।
- बनाए गए टेस्ट सूट का आह्वान करने के लिए एक टेस्ट्रनर क्लास फाइल बनाएं।
- Testrunner वर्ग निष्पादित करें।
कार्यक्रमों की संरचना जिसके माध्यम से हम परीक्षण सूट के निर्माण का प्रदर्शन करेंगे और रनर फ़ाइल के निष्पादन को नीचे दी गई छवि में दिखाया गया है:
यहां, हम उप-विषयों को कवर करेंगे:
- JUnit Classes बनाना
- टेस्ट सूट बनाना
- एक Testrunner फ़ाइल बनाना और परीक्षण सुइट्स का उपयोग करके इसे निष्पादित करना।
- @RunWith एनोटेशन के कामकाज पर अतिरिक्त जानकारी।
# 6.1) JUnit Classes बनाना
दो सरल JUnit श्रेणी की फ़ाइलें बनाकर शुरू करें:
- JUnitTestCase1.java - इसमें अपेक्षित संख्यात्मक मान को सत्यापित करने के लिए कोड शामिल है - चर मान 1 चर के वास्तविक मूल्य से मेल खाता है मान २।
- JUnitTestCase2.java - अपेक्षित स्ट्रिंग चर को सत्यापित करने के लिए कोड शामिल है StrValue और वास्तविक स्ट्रिंग चर कड़ा मेल खाता है।
ये मूल रूप से दो परीक्षण मामले हैं जिन्हें हम टेस्ट सूट नामक एक तार्किक समूह में शामिल करने की कोशिश करेंगे और इसे एक के बाद एक चलाएंगे।
कोड के लिए JUnitTestCase1.java
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase1 { public int Value1=6000; @Test public void junitMethod1(){ int Value2=9000; Assert.assertEquals(Value1, Value2); } }
कोड के लिए JUnitTestCase2.java
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase2 { public String stringValue='JUnit'; @Test public void junitMethod2(){ String strActual='Junit1'; Assert.assertSame(stringValue, strActual); } }
# 6.2) टेस्ट सूट बनाना:
टेस्ट सूट बनाने और चलाने की पूरी प्रक्रिया में यह खंड और अगला खंड एक प्रमुख भूमिका निभाता है। इस खंड में, हम समझने की कोशिश करेंगे एक साथ कई JUnit टेस्ट कक्षाओं को कैसे समूहित करें और एक परीक्षण सूट में बांधें ।
ऊपर दी गई संरचनात्मक छवि के अनुसार, JUnitTestCase1.java और JUnitTestCase2.java के साथ एक परीक्षण सूट बनाने दें और सुइट को JUnitTestSuite.java नाम दें।
टेस्ट सूट बनाने में हमारी मदद करने वाले दो एनोटेशन हैं:
- @RunWith और
- @SuiteClasses
एनोटेशन के लिए आवश्यक पैकेज:
- आपको पैकेज को आयात करने की आवश्यकता होगी। org.junit.runner.RunWith; @RunWith एनोटेशन को शामिल करने के लिए।
- आपको काम करने के लिए पैकेज org.junit.runners.Suite.SuiteClasses @SuiteClasses की आवश्यकता होगी।
- इसके अलावा, आपको पैकेज को आयात करने की भी आवश्यकता होगी। org.junit.runners.Suite को पैरामीटर @ के लिए पास करें। एनोटेशन @RunWith में सूट करें।
बेहतर समझ के लिए कोड पर नजर डालते हैं !!
कोड के लिए JUnitTestSuite.java
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({JUnitTestCase1.class, JUnitTestCase2.class }) public class JUnitTestSuite { @BeforeClass public static void printMe() { System.out.println('JUnitTestSuite is the test suite grouping testcase 1 and testcase 2'); } }
JUnitTestSuite.java के कोड की समझ:
- @RWWith JVM को यह समझने में मदद करता है कि उसे किस तरह का धावक वर्ग चलाना चाहिए जैसे सुइट.क्लास या ककड़ी.क्लास
- यहां, @RunWith का पैरामीटर है सूट.क्लास । यह JVM को यह पहचानने में मदद करता है कि वर्तमान फ़ाइल जहाँ @RunWith (Suite.class) का उपयोग किया जाता है, टेस्ट सूट में भूमिका निभाता है।
- एक सूट में एक साथ बंधे होने के लिए JUnit टेस्ट क्लास के नामों को एक अल्पविराम द्वारा अलग किए गए @SuiteClasses के मापदंडों के रूप में एक स्ट्रिंग सरणी के रूप में पारित किया जाना चाहिए।
- यह जेवीएम को यह जानने में सक्षम बनाता है कि कौन से सभी टेस्टकेस हैं जो सूट के तहत समूहीकृत करने की आवश्यकता है।
- सुइट नाम JUnit वर्ग फ़ाइल नाम होगा जो @RunWith और @SuiteClasses के साथ एनोटेट किया गया है जो इस मामले में JUnitTestSuite है।
# 6.3) टेस्ट रनर फ़ाइल और रन रनर टेस्ट सूट का उपयोग करके टेस्ट रनर बनाएँ
अंतिम चरण हमें टेस्ट सूट को चलाने में मदद करेगा जो हमने अभी एक टेस्ट्रनर फाइल का उपयोग करके उपरोक्त अनुभाग में बनाया है।
- अब हम SuiteRunnerFile नाम की एक जावा फ़ाइल बनाएंगे।
- यह SuiteRunnerFile.java एक JUnit वर्ग नहीं है, लेकिन मुख्य विधि के साथ एक सामान्य जावा फ़ाइल है।
आइए कोड को देखें और फिर इसे समझने की कोशिश करें।
SuiteRunnerFile.java के लिए कोड
package demo.tests; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class SuiteRunnerFile { public static void main(String args()) { Result result=JUnitCore.runClasses(JUnitTestSuite.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } } }
एनोटेशन के लिए आवश्यक पैकेज
- आपको शामिल करने के लिए पैकेज org.junit.runner.JunitCore को आयात करने की आवश्यकता है JUnitCore कोड में वर्ग।
- आपको पैकेज को आयात करने की आवश्यकता है। org.junit.runner.notification.Failure और org.junit.runner। क्रमशः कोड में विफलता और परिणाम वर्ग को शामिल करने के लिए परिणाम।
SuiteRunnerFile.java के लिए कोड की समझ
- टेस्ट सूट निष्पादन के लिए एक रनर फाइल बनाने के लिए, JUnitCore वर्ग एक महत्वपूर्ण भूमिका निभाता है।
- द runClasses () उसकि विधि JUnitCore क्लास टेस्ट सूट क्लास का नाम इनपुट पैरामीटर के रूप में लेता है इसलिए हमारे पास JUnitCore का स्टेटमेंट है। runClasses (JUnitTestSuite कक्षा ) है।
- इस कथन का रिटर्न प्रकार है परिणाम क्लास ऑब्जेक्ट जो परिणामी सफलता की स्थिति और परीक्षण केस फ़ाइल में से प्रत्येक की विफलता की स्थिति को संग्रहीत करता है; फांसी के बाद का। यही कारण है कि हम ए परिणाम के रूप में परिणाम कोड में क्लास ऑब्जेक्ट।
- फिर हम परीक्षण मामलों की विफलताओं को प्रिंट करते हैं यदि कोई हो। GetFailures () विधि की तरह, आप क्रमशः getFailureCount () और getRunCount () विधि का उपयोग करके विफलता की गिनती और रन गणना भी प्राप्त कर सकते हैं।
- अब SuiteRunnerFile निष्पादित करने के लिए तैयार है,
- पैकेज एक्सप्लोरर और से फ़ाइल का चयन करें
- राइट-क्लिक करें और रन अस -> जावा का चयन करें, प्रोग्राम निष्पादित करता है।
नीचे दिया गया कंसोल विंडो का स्क्रीनशॉट है।
कंसोल पर परिणामों की व्याख्या:
ऊपर दिया गया कंसोल दिखाता है कि:
- JUnitTestSuite वर्ग फ़ाइल को सुइट रनरफाइल के माध्यम से निष्पादित किया गया है।
- PrintMe () विधि के तहत एनोटेशन @BeforeClass पहले निष्पादित किया गया और
- फिर परीक्षण सूट में परीक्षण मामलों ने एक के बाद एक को निष्पादित किया। यह कैसे परीक्षण सूट बनाया जा सकता है और पैकेज के रूप में चलाया जा सकता है।
# 6.4) अतिरिक्त जानकारी - @RunWith कैसे काम करता है?
- @RunWith एक JUnit एपीआई है जो मूल रूप से इनपुट पैरामीटर के रूप में केवल एक तत्व को लेता है जो एक धावक वर्ग फ़ाइल नाम है।
- JUnit फ्रेमवर्क एक परीक्षण धावक के रूप में निर्दिष्ट वर्ग को आमंत्रित करता है।
RunWith.java से नीचे का स्निपेट आपको एक समझ पाने में मदद करेगा:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited public @interface RunWith { Class Extends Runner> value(); }
उपरोक्त RunWith इंटरफ़ेस कोड को समझना:
- विष्तृत मूल्य तत्व का व्युत्पन्न वर्ग होना चाहिए हरकारा कक्षा । प्रतिबिंब की अवधारणा का उपयोग यहां किया जाता है।
- इस तरह के धावक वर्ग का एक बहुत अच्छा उदाहरण हमारे कोड में पहले से ही लागू है यानी @RunWith (Suite.class) जहां टेस्ट सूट बनाने के लिए टेस्टस्कैस का एक समूह एक साथ बंध जाता है।
- इसी तरह, @RunWith के साथ रनर क्लास का उपयोग करने का एक और अच्छा उदाहरण @RunWith (Cucumber.class) हो सकता है जो जावा में सेलेनियम का उपयोग करके टेस्ट ऑटोमेशन के लिए एक व्यवसाय-संचालित विकास (BDD) ढांचा है। यह फ्रेमवर्क को ककड़ी आधारित परीक्षण मामलों को चलाने में मदद करता है।
ध्यान दें:
- इस ट्यूटोरियल में JUnit टेस्ट सूट बनाने और चलाने के लिए उपयोग किए गए एनोटेशन और पैरामीटर JUnit 4 के लिए विशिष्ट थे।
- वहाँ एक अलग तरीका है कि आप एक JUnit टेस्ट सूट कैसे बनाते हैं और JUnit 5 में रनर फ़ाइल को निष्पादित करते हैं।
हम अपने आगामी ट्यूटोरियल्स में जल्द ही JUnit 4 बनाम JUnit 5 के सभी पहलुओं के बारे में समझ बना लेंगे।
# 7) मावेन का उपयोग करके ज्यूनिट टेस्ट के मामले चलाएं
आपके पास एक मैवेन प्रोजेक्ट भी हो सकता है जिसमें जेयूनिट टेस्ट शामिल हैं और मावेन के माध्यम से टेस्ट चलाएं जो एक अलग ट्यूटोरियल में कवर किया जाएगा।
निष्कर्ष
- हमने JUnit परीक्षण चलाने के लिए सभी अलग-अलग विकल्पों को सीखा - एकल परीक्षण और साथ ही कई लोगों को परीक्षण सूट में एक साथ समूहीकृत किया गया।
- हमें अतिरिक्त ज्ञान मिला कि रन ऑप्शन के लिए वरीयता को कैसे अपडेट किया जाए, जेवैक एरर को कैसे ठीक किया जाए और कैसे कमांड लाइन एक्जीक्यूशन हमारी मदद कर सकता है।
- इसके अलावा, हमने @RunWith एनोटेशन कैसे काम करता है, इसके बारे में भी सीखा।
इसलिए, आगामी ट्यूटोरियल में अनुसरण करने के लिए अधिक है। ‘स्टैंड बाय’ तब तक !!!
=> स्क्रैच से जुएनिट जानने के लिए यहां जाएं।
अनुशंसित पाठ
- JUnit टेस्ट: उदाहरण के साथ JUnit टेस्ट मामलों को कैसे लिखें
- शुरुआती के लिए JUnit ट्यूटोरियल - JUnit परीक्षण क्या है
- एक JUnit टेस्ट स्थिरता क्या है: JUnit 4 उदाहरण के साथ ट्यूटोरियल
- Specflow Reporting: टेस्ट रिपोर्ट और एक्ज़िक्यूट सेलेक्टिव टेस्ट कैसे उत्पन्न करें
- डाउनलोड, स्थापित करें और ग्रहण में कॉन्फ़िगर करें
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11
- Android App के लिए Appium टेस्ट बनाएँ
- Arrays का उपयोग करके MongoDB में कई दस्तावेज़ सम्मिलित करें