2008-11-13 7 views
11

मैं इस धारणा के तहत था कि यूनिट टेस्ट क्लास would be executed in the order that they appear in the class file. में परीक्षण विधियां स्पष्ट रूप से यह सच नहीं है। यह भी वर्णमाला क्रम से पूरी तरह से आधारित नहीं प्रतीत होता है। एमएसटीएस्ट निष्पादन आदेश कैसे तय करता है?एमएसटीएस्ट/विजुअल स्टूडियो 2008 टीम टेस्ट टेस्ट विधि निष्पादन आदेश का निर्णय कैसे करता है?

संपादित करें: मैं थोड़ा खोदने के बाद उत्तर को ट्रैक करने में सक्षम था। निचे देखो।

+0

का उपयोग करें: "xUnit.net यादृच्छिक क्रम में परीक्षण चलाता है", एडीई मिलर http://www.ademiller.com/blogs/tech/2007/11/xunitnet-run-test-in-random-order/ – gerryLowry

उत्तर

11

मैं उत्तर को ट्रैक करने में सक्षम था।

According to Microsoft employee Guillermo Serrato:

MSTest सभी परीक्षणों कार्यान्वित तुल्यकालिक, आदेश nondeterministic

-1

इससे कोई फर्क नहीं होना चाहिए कि जिस क्रम में वे में ... चलाने यदि आपके परीक्षण एक और परीक्षण पर निर्भर पहले से चल रहा है, अपने परीक्षण कर रहे हैं दोषपूर्ण :-)

+1

मुझे लगा कि यह आ रहा था। –

+1

सहमत - लेकिन परिदृश्य के बारे में क्या है जब आप ट्रैक करने की कोशिश कर रहे हैं कि कौन सा परीक्षण स्वयं के बाद सफाई नहीं कर रहा है (डेटा संचालित परीक्षण में) - निष्पादन आदेश को जानने से इस मामले में – Delaney

+0

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

1

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

2

टेस्ट दृश्य में छंटाई है, या परीक्षण सूची संपादक आप नियंत्रण है की तरह प्रकट करने के लिए उन्हें का कारण बनता है - यह है कार्यान्वयन के केवल एक उत्पाद द्वारा। हम वास्तव में उन्हें एक विशिष्ट क्रम में निष्पादित करने का कोई प्रयास नहीं करते हैं (हम "ऑर्डर ऑर्डर" और "यादृच्छिक रूप से ऑर्डर" पर आगे और आगे चले गए हैं)।

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

2

यह बहुत आसान है। मैं इस

सी उपयोग कर रहा हूँ:> MSTest /testcontainer:C:\MyTest.dll /resultsfile:C:\MyTestresults.xml

तर्क यह है कि डिफ़ॉल्ट रूप से MSTest आप एक .trx फ़ाइल देता है यहाँ है। तो [/ resultfile:] विकल्प के खिलाफ कमांड में .xml एक्सटेंशन देकर फ़ाइल का नाम लिखें। इसलिए मैंने /resultsfile:C:\MyTestresults.xml का उपयोग किया /resultsfile:C:\MyTestresults.trx

यह मेरे लिए ठीक काम करता है। अगर यह आप के लिए काम करता है तो मुझे बतलाएगा।

2

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

  1. आपको डिफ़ॉल्ट .testrunconfig और .vsmdi फ़ाइलों को हटाना सुनिश्चित करना चाहिए। बिल्डिंग टेस्ट प्रोजेक्ट के दौरान इन फ़ाइलों को विजुअल स्टूडियो बनाया गया।

  2. विजुअल स्टूडियो उदाहरण बंद करें और इसे फिर से खोलें।

  3. जब विजुअल स्टूडियो खोला गया तो आपको टेस्ट लिस्ट एडियर खोलना चाहिए, फिर परीक्षण अनुभाग की सूची के तहत अपनी खुद की सूची बनाएं। एक नई परीक्षा सूची बनाने के बाद यह खाली होना चाहिए।

  4. सभी लोड किए गए परीक्षण अनुभाग पर जाएं, फिर किसी भी परीक्षण को अपने चुने हुए आदेश के साथ नव निर्मित परीक्षण अनुभाग पर खींचें।

फिर सुनिश्चित करें कि आपका आखिरी बनाया गया परीक्षण अनुभाग चेक किया गया है और आप रन परीक्षण और वोला को अपने निर्धारित क्रम के साथ चला सकते हैं।

मुझे यह नहीं पता कि यह बग या कुछ ऐसी चीज हो सकती है, लेकिन यह जादुई रूप से काम कर रही है। हमने इस सहयोगी को मेरे सहयोगी के साथ दो बार परीक्षण किया।

अच्छा ताला

2

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

आप परिणाम परिणाम विंडो (टेस्ट | विंडोज | टेस्ट परिणाम) में परिणाम देंगे; OrderedTest पर डबल क्लिक करें, और आप वहां अपने सभी वेबटेस्ट के लिए विस्तृत परिणाम देखेंगे। आप प्रत्येक वेबटेस्ट पर डबल क्लिक कर सकते हैं, और आप उनमें से प्रत्येक के लिए विस्तृत परिणाम देख पाएंगे।

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