2011-06-07 10 views
6

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

मैंने ऐसा करने के लिए परीक्षण रन कॉन्फ़िगरेशन सेटअप स्क्रिप्ट का उपयोग करने का प्रयास किया, लेकिन जैसा कि मैंने उम्मीद की थी कि यह एक बैच फ़ाइल है क्योंकि यह निकलने के बाद परिवर्तन खो जाते हैं, इसलिए यह काम नहीं करेगा।

क्या अस्थायी सिस्टम पर्यावरण चर सेट करने का कोई अन्य तरीका है जो सभी परीक्षणों के दौरान मान्य होगा?

+0

क्या आप कमांड लाइन (डॉस/पावरशेल) से एमएसटीएस्ट चला रहे हैं? या विजुअल स्टूडियो से? – Rob

+0

विजुअल स्टूडियो 2008 के भीतर से खेद है कि अगर यह स्पष्ट नहीं था। डिफ़ॉल्ट टेस्ट रनर का उपयोग करना, आदि –

उत्तर

4

हालांकि इस समाधान से खुश नहीं है, मैं एक कक्षा वर्ग के लिए ClassInitializeAttribute का उपयोग करके एमएसटीएस्ट के साथ क्या करना चाहता था, और फिर पर्यावरण का उपयोग करके .etEnvironmentVariable मुझे आवश्यक परिवर्तन करने के लिए, और फिर इसे साफ़ करें theClassCleanupAttribute के साथ सजाए गए तरीके में।

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

1

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

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

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

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

+0

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

+1

आप यूनिट परीक्षण ढांचे का प्रस्ताव कैसे देते हैं, जो इस अवधारणा के आसपास डिज़ाइन किया गया है कि यूनिट परीक्षण बाहरी संसाधनों को स्पर्श या निर्भर नहीं करना चाहिए, बाहरी संसाधनों को संशोधित करना चाहिए? – KeithS

+0

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

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

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