2009-05-15 21 views
33

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

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

क्या यह भी संभव है?

उत्तर

46

मैं एक तरीका है कि मेरी प्रयोजनों फिट बैठता है पाया है

एक परीक्षण का मामला है, और TestCaseSource साथ चिह्नित इसलिए

[Test, TestCaseSource("GetTestCases")] 
public void TestFile(string filename) 
{ 
    //do test 
} 

की तरह विशेषता तब सभी को पढ़ने के लिए GetTestCases बारे में निर्देशिका में फ़ाइल नाम

private static string[] GetTestCases() 
{ 
    return GetAllFilesInCurrentDirectory(); 
} 

तब जब मैं न्यूटिट शुरू करता हूं तो मुझे परीक्षणों की एक सूची मिलती है रन (टेस्टफाइल के तहत सूचीबद्ध)।

+0

अच्छा और सरल। यह दस्तावेज़ भी काफी लचीला है, जैसा दस्तावेज़ों में वर्णित है (v2.5.2 का जिक्र करते हुए): http://nunit.com/index.php?p=testCaseSource&r=2.5.2 –

+0

NUnit चट्टानें !! यह चीजों को आसान बना दिया। मैं इस सुविधा का उपयोग एकीकरण परीक्षण – AksharRoop

+0

के लिए कर रहा हूं इसे रीशेर्पर परीक्षण धावक में कैसे काम करना है? यह त्रुटियों को दिखाता है और परीक्षण सत्र में स्टैक प्रदर्शित करने के बजाय संदेश बॉक्स में विफल रहता है – moudrick

1

आप समय के साथ उस निर्देशिका के लिए फ़ाइलों को जोड़ने के लिए जा नहीं रहे हैं, तो और एक सामान्य परीक्षण करने के लिए एक इनपुट के रूप में पारित करने के लिए फ़ाइल नाम का एक सेट है, RowTest NUnit extension (एसटीडी distrib पद वी 2 के भाग का उपयोग कर प्रयास करें। 4.7) - आप प्रत्येक टेस्ट केस - एक एकल नोड के तहत समूहित जीयूआई में अलग-अलग इनपुट संयोजन देख पाएंगे।

आप कि निर्देशिका में फ़ाइलों को जोड़ने के लिए जा रहे हैं, तो , मैं एक ही NUnit testcase जो रनटाइम के दौरान प्राप्त फ़ाइलों की एक सूची से अधिक लूप और प्रत्येक filepath साथ सामान्य परीक्षण प्रणाली को बुलाती है लिखना चाहते हैं। असफल परीक्षण फ़ाइल नाम एकत्र करने के लिए collecting parameter का उपयोग करें - अंत में आप जोर देते हैं। आप व्यक्तिगत रूप से प्रत्येक टेस्ट केस को देखने में सक्षम नहीं होंगे लेकिन आपके पास पठनीय सरल परीक्षण कोड होगा।

Assert.AreEqual(listOfFailedFiles.Length, 0, PrettyPrint(listOfFailedFiles)) 
+0

जब तक आपके पास हजारों परीक्षण नहीं हैं .... इसमें कुछ घंटे लग सकते हैं। – eocron

0

मुझे पता है कि यह थोड़ा अस्पष्ट है लेकिन मैंने अतीत में एक स्क्रिप्ट का उपयोग किया है ताकि मेरे लिए कोड उत्पन्न हो सके जिसे मैं व्यक्तिगत परीक्षण मामलों के रूप में निष्पादित कर सकता हूं।

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