5

मैं एक कन्डर्रम में भाग रहा हूं। हमारे पास एक पुरातन प्रणाली है जिसे मैं बेथ परीक्षण लिख रहा हूं। यह अधिकांश भाग के लिए बहुत अच्छा काम करता है। लेकिन मैंने एक मुद्दा देखा है जहां वर्तमान माहौल के खिलाफ परीक्षण किए जा रहे डेटा को एक अलग वातावरण से निकालने/खींचने के लिए बीट परीक्षण विफल हो जाएंगे।क्या बीट के साथ मौजूदा पर्यावरण के आधार पर विभिन्न चरण डेटा का उपयोग करना संभव है?

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

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

क्या किसी को भी बेथ के साथ प्रत्येक में अलग-अलग डेटा सेट के साथ कई वातावरण से निपटने के लिए एक अच्छा तरीका या सर्वोत्तम अभ्यास पता है?

उत्तर

5

केएनपी लैब्स के लोगों के अनुसार उनकी प्रशिक्षण में से एक के दौरान, सर्वोत्तम अभ्यास एक परिदृश्य के लिए जरूरी या पृष्ठभूमि के हिस्से के रूप में सफल होने के लिए आवश्यक डेटा बनाना है ताकि आप पढ़ सकें कि "मेरे पास दिया गया है 7 फोन नंबर "और चरण परिभाषा सात फोन नंबरों को सम्मिलित करती है जिन्हें उस परिदृश्य के बाकी हिस्सों पर भरोसा किया जा सकता है।

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

चूंकि सर्वोत्तम अभ्यास यह भी निर्देश देता है कि फीचर फाइलों को आवेदन व्यवहार का वर्णन करना चाहिए, फीचर लाभार्थी को समझने की उम्मीद की जा सकती है, यह संभावना नहीं है कि सुविधा फ़ाइल में पर्यावरण-सशर्त डेटा को उजागर करने वाला कोई भी इष्टतम दृष्टिकोण होगा। लक्ष्य सुविधा उपयोगकर्ता शायद अलग वातावरण के बारे में पता नहीं है।

यदि उत्पादन पर डेटा परीक्षण के लिए पर्याप्त स्थिर है, तो मैं behat.yml में पैरामीटर या प्रोफाइल सेट करने पर विचार करता हूं जिसका प्रयोग पर्यावरण के समय को चलाने के लिए किया जा सकता है और एक कस्टम चरण परिभाषा लिख ​​सकता है। कस्टम चरण परिभाषा ज्ञात उत्पादन मूल्यों को एक मामले में आपूर्ति कर सकती है और उन मानों को दूसरों में सम्मिलित कर सकती है। और गेरकिन अभी भी "मेरे पास 7 फोन नंबर हैं" जैसा दिखता है ताकि यह सुविधा व्यावसायिक मूल्य और उपयोगकर्ता के लिए लाभ पर ध्यान केंद्रित करे, न कि परीक्षण वातावरण।

+0

हाँ, यह स्थिति निश्चित रूप से कठिन है। मुझे कुछ कस्टम कार्यों से खींचकर और चरण कॉल में कितने खींचने के लिए पर्यावरण के लिए डेटा प्रदान करने का एक और तरीका खोजने का विचार पसंद है। – pthurmond

+1

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

+0

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

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