2011-04-29 15 views
5

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

क्या टेस्टकेससोर्स के साथ एक एनआईएनआईटी विशेषता निर्दिष्ट करना संभव है जैसे एनयूनीट गणना नहीं करता है टेस्ट केस (टेस्टकेससोर्स फ़ंक्शन को कॉल नहीं करता है) जब तक उपयोगकर्ता नोड पर क्लिक नहीं करता है, या जब तक परीक्षण सूट नहीं चलाया जाता है?

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

कुछ डॉगमैटिक यूनिट-टेस्टर्स का सामना करना पड़ सकता है कि मैं ऐसा करने के लिए एनयूनीट का उपयोग कर रहा हूं जो ऐसा नहीं करना चाहिए। मुझे यह मानना ​​है कि मुझे एक आवश्यकता को पूरा करना है, और एनआईएनआईटी एक महान जीयूआई के साथ ऐसा एक महान उपकरण है जो मेरी अधिकांश आवश्यकताओं को पूरा करता है, जैसे कि मुझे परवाह नहीं है कि यह उचित इकाई परीक्षण है या नहीं।

अतिरिक्त जानकारी (से NUnit प्रलेखन) वस्तु निर्माण पर

नोट

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

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

ऐसा लगता है सामने परीक्षण मामलों लोड हो रहा है के प्रयोजन के TestCaseSource और परीक्षण के निष्पादन के बीच होने संचार (या दुष्प्रभाव) से बचना है। क्या ये सच है? क्या टेस्ट केसों को सामने लोड करने की आवश्यकता है?

नोट:

NUnit के एक संशोधन से जरूरत थी के रूप में http://blog.sponholtz.com/2012/02/late-binded-parameterized-tests-in.html

में दर्ज NUnit के बाद के संस्करणों के लिए इस विकल्प को पेश करने की योजना हैं।

उत्तर

0

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

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