स्पॉक टेस्ट चश्मा के लिए स्प्रिंग आईडीई में टेस्ट सूट बनाना

मेरे पास स्पॉक में सैकड़ों परीक्षण विनिर्देश हैं। ये सभी कार्यात्मक परीक्षण हैं और स्वतंत्र रूप से चलाए जा सकते हैं। लेकिन मैं एक ऐसी स्थिति में आया हूं जहां मुझे कुछ अन्य परीक्षण चलाने से पहले एक विशिष्ट परीक्षण चलाने की जरूरत है।

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

क्या कोई कृपया कुछ विचार साझा कर सकता है कि हम टेस्ट सूट कैसे बना सकते हैं और कुछ विशिष्ट परीक्षण चला सकते हैं और परीक्षण के आदेश को भी परिभाषित कर सकते हैं।

कोई भी सहायताकाफी प्रशंसनीय होगी।

0

4 उत्तर

यदि आप किसी विशेष क्रम में चलने वाले परीक्षणों को एक ही स्पॉक विशिष्टता का हिस्सा हैं, तो आप निर्दिष्ट करने के लिए @Stepwise एनोटेशन का उपयोग कर सकते हैं ताकि परीक्षण (फीचर विधियों) को विशिष्टता वर्ग में दिखाई देने वाले क्रम में निष्पादित किया जा सके।

जैसा कि अन्य लोगों ने उल्लेख किया है, यदि आप जटिलता के कारण यह कर सकते हैं तो इस निर्भरता से बचने के लिए सबसे अच्छा है। उदाहरण के लिए, यदि पहला परीक्षण विफल रहता है तो क्या होता है? क्या यह बाद के परीक्षणों के लिए सिस्टम को एक अनिर्धारित स्थिति में छोड़ देता है? इसलिए सेटअप() और क्लीनअप() विधियों (या setupSpec() और cleanupSpec ()) के साथ इंट्रा-टेस्ट निर्भरताओं को रोकने के लिए बेहतर होगा।

एक और विकल्प दो आश्रित परीक्षणों को एक मल्टी-स्टेज टेस्ट में एक साथ जोड़ना है:/तब: अनुक्रम में ब्लॉक जोड़े।

0
जोड़ा
हाय एलेक्स, आपकी प्रतिक्रिया के लिए धन्यवाद। मैं आपके दूसरे विकल्प से खुश हूं (निर्भर परीक्षणों को एक में जोड़ना) हालांकि मुद्दा यह है कि वे कार्यात्मक परीक्षण हैं। और अगर मेरे पास एक बड़ा परीक्षण है तो परीक्षण चलाने में काफी समय लगेगा। स्क्रिप्ट के बाद के भाग होने का कारण आगे बढ़ने से पहले एक आदेश प्राप्त होने तक प्रतीक्षा करना है। इस मामले में मुझे e2e यात्रा को पूरा करने में सक्षम होने के लिए मेरी स्क्रिप्ट में एक निहित प्रतीक्षा शुरू करनी होगी।
जोड़ा लेखक vijay pujar, स्रोत

हालांकि मुझे लगता है कि यह आपको परीक्षणों के आदेश को निर्दिष्ट करने की अनुमति नहीं देगा, आप स्पॉक की धावक कॉन्फ़िगरेशन या @ IgnoreIf/@ अंतर्निहित एक्सटेंशन की आवश्यकता हो सकती है। एक समान प्रश्न के लिए मेरी प्रतिक्रिया पर एक नज़र डालें । शायद RunnerConfiguration javadoc क्योंकि यह दिखाता है कि आप एनोटेशन का उपयोग करने के बजाय सीधे कक्षाएं शामिल कर सकते हैं।

0
जोड़ा
धन्यवाद erdi। लेकिन यह एक जटिल समाधान का एक सा है। क्या ड्राइवर चालक होना बेहतर है और वहां से परीक्षण निष्पादन चलाएं (कुछ हाइब्रिड फ्रेमवर्क होने जैसा)।
जोड़ा लेखक vijay pujar, स्रोत

यदि आपको केवल एक स्पेक के भीतर विधियों के अनुक्रमिक निष्पादन की आवश्यकता है, तो @ spock.lang.Stepwise पर एक नज़र डालें, जो वर्कफ़्लो परीक्षण के लिए आसान है। अन्यथा, आपके पास सादे जुनीट की तरह ही संभावनाएं हैं: आप जुनीट (4) टेस्ट सूट, मॉडल के परीक्षण सूट का चयन अपने निर्माण उपकरण (जो एसटीएस के भीतर मदद नहीं कर सकते हैं) में कर सकते हैं, या ग्रहण रन कॉन्फ़िगरेशन के माध्यम से परीक्षण सूट परिभाषित कर सकते हैं। मुझे नहीं पता कि उत्तरार्द्ध के लिए कितना समर्थन है, लेकिन कम से कम, आपको पैकेज में सभी परीक्षण चलाने की अनुमति देनी चाहिए।

0
जोड़ा

स्पॉक विनिर्देश मान्य जुनीट परीक्षण (या सूट) भी हैं। यही कारण है कि वे एसटीएस जैसे उपकरणों द्वारा मान्यता प्राप्त हैं। आपको इसे परीक्षण सूट के साथ-साथ अन्य जुनीट परीक्षण में जोड़ने में सक्षम होना चाहिए।

दूसरी ओर यदि यह परीक्षण निष्पादन आदेश पर निर्भर करता है तो यह एक अच्छा अभ्यास के रूप में नहीं लगता है। यदि परीक्षण निष्पादन से पहले कुछ कार्यों को करने की आवश्यकता है, तो इसे setup() विधि में रखा जाना चाहिए। यदि वह तर्क एक से अधिक परीक्षणों के लिए आम है, तो इसे मूल वर्ग में निकालने पर विचार करें।

0
जोड़ा
जैसा कि मैंने ऊपर बताया है, मैं परीक्षण को व्यक्तिगत रूप से या एक पूर्ण सेट के रूप में जूनिट परीक्षण के रूप में चला सकता हूं। लेकिन मुझे यह जानने की जरूरत है कि कोई तरीका है कि हम एक टेस्ट सूट बना सकते हैं जहां हम परिभाषित कर सकते हैं कि क्या चलाना है (परीक्षण के क्रम सहित)
जोड़ा लेखक vijay pujar, स्रोत