2013-02-08 60 views
47

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

मुझे विजुअल स्टूडियो 2012 एमएसटीएस्ट बनाम नुनिट नवीनतम संस्करण के पेशेवरों और विपक्ष को जानने की आवश्यकता है। चूंकि स्टैक ओवरफ़्लो पर अधिकांश लेख वीएस के पुराने संस्करणों से संबंधित हैं, वे हमसे संबंधित नहीं हैं। मैं Microsoft MSTest एक बहुत 2010 के बाद से विस्तार की तकनीकी समस्याओं तुम दोनों प्रौद्योगिकियों (नए संस्करण केवल)

+0

madcoderspeak.blogspot.com/2011/11/nunit-vs-mstest-2011-edition.html पर एक पठन लें। एमएसटीएस्ट में लगातार/बड़े अपडेट नहीं होते हैं – Gishu

उत्तर

27

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

कवरेज विश्लेषण प्रीमियम में भी काफी साफ है। यह तेज़ है और आपको तुरंत जो चाहिए उसे देता है। हालांकि यह एक प्रीमियम सुविधा है।

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

+0

हालांकि यह धागा बहुत पुराना है, मैं सिर्फ यह जोड़ना चाहता था कि आप एनयूनीट और वीएस (कम से कम 2012 अपडेट 1) का उपयोग करके परीक्षण समूह कर सकते हैं। इस आलेख को देखें (http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part- एक संदर्भ के रूप में 1-उपयोग-गुण-में-इकाई-परीक्षण-explorer.aspx)। केवल एक चीज जो आपको करने की ज़रूरत है, वह श्रेणी श्रेणी जैसे '[श्रेणी ("MyGroup")] जोड़ें और वीएस के परीक्षण एक्सप्लोरर में विशेषता के आधार पर परीक्षणों को समूहित करें। शायद वह sbdy के लिए हंसमुख है। – nozzleman

10

@ बिरांची: इससे कोई फर्क नहीं पड़ता कि आप विजुअल स्टूडियो 2012 (और ऊपर) में किस इकाई परीक्षण ढांचे का उपयोग करते हैं। मेरे ब्लॉगपोस्ट को यहां देखें, जिस पर आप संदर्भित करते हैं उसका अनुक्रम। http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/20/part-2-using-traits-with-different-test-frameworks-in-the-unit-test-explorer.aspx

आप विभिन्न ढांचे से परीक्षण भी मिश्रण और मिलान कर सकते हैं, आप इसे विधि स्तर तक भी कर सकते हैं !!
इसका मतलब है कि आप विरासत कोड को एक से दूसरे में भी खराब दुष्प्रभावों के साथ स्थानांतरित कर सकते हैं।

यह भी देखें कि एनयूनेट एडाप्टर को समाधान में स्थापित करने के लिए Nuget का उपयोग कैसे करें, डेवलपर को इसे इंस्टॉल करने के लिए मुक्त करें। http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/11/part-3-unit-testing-with-traits-and-code-coverage-in-visual-studio-2012-using-the-tfs-build-and-the-new-nuget-adapter-approach.aspx

@ श्रीवाँथा: एमएसटीएस्ट एनयूनीट की तुलना में एक सरल ढांचा है। NUnit (और XUnit) आपको अधिक लचीलापन देता है, जिससे लिखने के लिए कम कोड भी होता है। एक उदाहरण: यदि आप श्रेणियों (और आपको चाहिए) का उपयोग कर रहे हैं, तो एमएसटीएस्ट को प्रत्येक विधि को सजाने के लिए एक श्रेणी की आवश्यकता होती है। NUnit आपको कक्षा को सजाने की अनुमति देता है - जो उस वर्ग के सभी तरीकों के लिए प्रभावी होगा।NUnit भी आप दृढ़ता से टाइप किया श्रेणियों

public class Integration : Category {} 

यह एक वर्ग है कि आप

Category("Integration"); 

के बजाय का उपयोग कर सकते हैं जहाँ आप वर्तनी त्रुटियों का जोखिम घोषित करने के लिए पर्याप्त है उपयोग करने के लिए अनुमति देते हैं।

एनयूनीट डेटा संचालित परीक्षणों के लिए बहुत बेहतर समर्थन है। NUnit ने theories

कुछ नामों के लिए भी समर्थन किया है।

0

यहां जोड़ने के लिए एक और चीज़। ऐसा लगता है कि एमएसटीएस्ट इंजन कुछ परिदृश्यों में टीएफएस बिल्ड के साथ अच्छी तरह से काम नहीं करता है। यदि आप टीएफएस बिल्ड का उपयोग कर रहे हैं, तो यह छोड़े गए परीक्षणों की रिपोर्ट नहीं करेगा (इग्नोर विशेषता के साथ चिह्नित)। इसमें केवल सम्मिलन शामिल होगा। अनन्य। यदि यह कोई मुद्दा है, तो आपको MSTest के बजाय NUnit का उपयोग करना चाहिए।