.NET के लिए सबसे अच्छा यूनिट टेस्ट फ्रेमवर्क क्या है और क्यों? [बन्द है]


26

यह मुझे लगता है कि हर कोई अन्य विकल्पों पर विचार किए बिना भी NUnit का उपयोग करता है । मुझे लगता है कि यह है क्योंकि:

  • हर कोई पहले से ही परिचित है इसलिए उन्हें एक नया एपीआई नहीं सीखना होगा।
  • यह पहले से ही NUnit के साथ काम करने के लिए उनके निरंतर एकीकरण सर्वर के साथ स्थापित है।

क्या मैं इस बारे में गलत हूं?

मैंने हाल ही में अपनी एक परियोजना पर xUnit का उपयोग करने का फैसला किया है और मुझे यह पसंद है! यह मेरे लिए बहुत अधिक समझ में आता है और वैचारिक रूप से यह NUnit से निश्चित कदम की तरह लगता है।

मैं यह जानना चाहता हूं कि वास्तव में कौन सा ढांचा सबसे अच्छा है - इसे सीखने या अपने स्वचालित परीक्षण को फिर से कॉन्फ़िगर करने पर ध्यान नहीं देना।


6
कृपया सर्वोत्तम परिभाषित करें। सबसे सस्ता? कोड करने के लिए सबसे आसान? प्रति परीक्षण कोड की कुछ पंक्तियाँ? stackoverflow.com/questions/680298/…
अमीर रज़ाई

क्षमा करें, मेरा मतलब सबसे शक्तिशाली, स्थिर और सहज, जो भी हो। मैं राय और कारणों के लिए पूछ रहा हूँ क्यों । मैंने उत्तरदाता की कल्पना के लिए 'सर्वश्रेष्ठ' छोड़ दिया क्योंकि मैं यह भी देखना चाहता हूं कि उन पहलुओं में से कौन सा पहलू लोगों के लिए महत्वपूर्ण है।
कोई भी

2
यदि आप अपने प्रश्न को पुन: प्रस्तुत कर सकते हैं तो यह ठीक हो सकता है, अन्यथा यह केवल एक "एक्स की सूची" प्रश्न है जो रचनात्मक नहीं हैं। देखें रचनात्मक व्यक्तिपरक प्रश्नों के लिए छः दिशानिर्देशों
ChrisF

2
"सबसे अच्छा" पूछने के लिए एक विनम्र बात है - क्योंकि बहुत कम ही एक आंशिक रूप से सबसे अच्छा है क्योंकि यह संदर्भ पर और आंशिक रूप से निर्भर करेगा क्योंकि यह अनिवार्य रूप से कुछ डिग्री व्यक्तिपरक है।
मर्फ़

10
Murph। सबसे पहले, यह साइट व्यक्तिपरक प्रश्नों के लिए है। दूसरा मैं राय माँग रहा हूँ ताकि मैं दूसरों की 'सर्वश्रेष्ठ' की व्याख्या देख सकूँ। और मुझे गूंगा मत कहो।
कोई भी

जवाबों:


15

MSTest

मैं व्यक्तिगत रूप से MSTest का उपयोग करता हूं। NUnit वास्तव में अच्छा है, लेकिन VS2010 में, MSTest पहले से ही IDE में पूरी तरह से एकीकृत है और इसके लिए पूर्ण परियोजना टेम्पलेट हैं। .NET के लिए, यदि आप 2010 का उपयोग कर रहे हैं, तो मुझे लगता है कि MSTest जाने का रास्ता है (VS2008 में MSTest मुझे नहीं लगता कि बराबर है) कोड कवरेज के लिए, परीक्षण धावक और अन्य उपकरण जो आपके लिए उपलब्ध हैं अलग सोच। (यदि आप CodeRush या R # का उपयोग करते हैं, तो उनके पास वास्तव में महान परीक्षण धावक / अन्य परीक्षण ढांचे के लिए उपकरण हैं)

संपादित करें: मैं तब से XUnit में चला गया हूं। : डी


मैंने MbUnit / Galio और इस उत्तर दोनों के लिए मतदान किया। MbUnit / Galio बस बेहतर है, लेकिन उनके हाथ बंधे हुए हैं जब यह MsTest परीक्षण चलाने की बात आती है, उस .net पुस्तकालय में कुछ वर्गों के लिए अंतिम और विस्तार योग्य नहीं हैं। हालाँकि, अगर आपको GUI स्वचालन करना है, तो MsTest के शीर्ष पर कोडेड UI और cuite.codeplex.com/documentation काम करें, इसलिए उन्हें उपयोग करने के लिए सिर्फ एक है।
जॉब

2
मेरे पास MSTest का मुद्दा यह है कि यह मूल रूप से कमांड लाइन परीक्षण का समर्थन नहीं करता है, यह एक मुद्दा हो सकता है जब आप CI पर इकाइयों को चलाना चाहते हैं।
CmdrTallen

1
Nunit अब VS अधिकार में पूरी तरह से एकीकृत है?
BKSpurgeon

हाँ, यह है। यह देखते हुए कि यह अब लगभग 6 साल का है, मैं व्यक्तिगत रूप से NUnit और फिर अब XUnit में चला गया हूं। दोनों (और अन्य) के पास नगेट पैकेज हैं जो MSTest के समान वी.एस. कार्यक्षमता को हल्का करने के लिए एडेप्टर के रूप में काम करते हैं। ईमानदारी से, MSTest शायद इस बिंदु पर सूची में सबसे नीचे है। मैं XUnit या NUnit को वोट करूंगा। इन दिनों के रूप में दोनों ठोस, बनाए रखा है, और आधुनिक हैं।
रयान हेस

14

मैंने कई साल पहले गैलियो / MbUnit का उपयोग करना शुरू कर दिया है । और यह जो सुविधाएँ और रत्न प्रदान करता है, वे इतने शक्तिशाली हैं कि मुझे अपनी पसंद पर कभी पछतावा नहीं है। वास्तव में, मैं अब गैलियो ओएसएस परियोजना के विकास दल का हिस्सा हूं; इसलिए मैं इसे और भी भयानक बनाने में योगदान कर सकता हूं।

  • MbUnit में कई शक्तिशाली विशेषताएं हैं जो मेरे डेवलपर के जीवन को आसान बनाते हैं (अनुबंध सत्यापनकर्ता, परीक्षण कारखाने, संरचनात्मक समानता तुलनित्र, दहनशील परीक्षण, डेटा निर्माण ढाँचा, पाठ भिन्नता, xml अभिकथन, विस्तार बिंदु, आदि)
  • गैलियो एक अच्छी रिपोर्टिंग टूलिंग के साथ मेरे सभी परीक्षणों को चलाने के लिए एक सुसंगत मंच प्रदान करता है। मैं इस तथ्य का भी शौकीन हूं कि मैं अन्य ओएसएस परियोजनाओं से परीक्षणों को एकीकृत कर सकता हूं जो एमबीयूनिट का उपयोग नहीं करते हैं और बस उन्हें साथ चलाते हैं। कई 3rd पार्टी टूल्स के भीतर सीमलेस इंटीग्रेशन भी सुविधाजनक है (R #, PoSh, dotCover, आदि) और इंफ्रास्ट्रक्चर की एक्स्टेंसिबिलिटी कमाल की है (उदाहरण के लिए, मैंने अभी हाल ही में हुए एक अनवांटेड C ++ फॉर्मूला फ्रेमवर्क के लिए एक टेस्ट अडैप्टर लिखने के लिए समाप्त किया है। यह जल्द ही भविष्य में रिलीज का हिस्सा होगा)

विकि निश्चित रूप से डिस्कवर गल्लियो और MbUnit v3 के लिए एक अच्छा प्रारंभिक बिंदु है। यह कुछ अध्याय याद करता है, लेकिन यह पहले से ही उपयोगी है।


संरचनात्मक समानता तुलनित्र और डेटा जनरेशन फ्रेमवर्क बहुत अच्छा लगता है। क्या MbUnit डेटा-चालित परीक्षण कर सकता है - अर्थात csv / xsd फ़ाइलों को पढ़ें और परीक्षण विधि के तर्क के रूप में उनका उपयोग करें? यह मेरे लिए xunit के मुख्य आकर्षणों में से एक है।
कोई भी

ज़रूर। ASAIK MbUnit .NET द्वारा डेटा-चालित परीक्षण शुरू करने के लिए पहला परीक्षण ढांचा था। यह आंतरिक ([पंक्ति], [कॉलम], आदि) और बाहरी ([CsvData], [XmlData], आदि) डेटा स्रोतों के लिए परीक्षण paremeters को बांध सकता है। यहाँ अधिक जानकारी: gallio.org/wiki/doku.php?id=mbunit:data-driven_testing
यान

क्या उन्होंने गैलियो और दृश्य स्टूडियो के साथ प्रदर्शन की समस्याओं को ठीक किया है? हमारे लिए डील किलर था।
व्याट बार्नेट

जब मैंने छोटी कंपनी के लिए काम किया तो मैंने MbUnit का इस्तेमाल किया और यह बहुत अच्छा था! मैंने बाद में MsTest का उपयोग किया क्योंकि मुझे करना था, और यह ठीक काम किया। मैं अभी भी परियोजना सेटिंग्स को कॉन्फ़िगर करने पर स्पष्ट कोड लिखना पसंद करता हूं। हालांकि कॉर्पोरेट समर्थन MSTest की मदद करता है। चाहे डिजाइन बदसूरत हो या सुंदर, आप जानते हैं कि एमएसएफटी से जो भी निकलता है, उसका अच्छी तरह से परीक्षण किया जाएगा।
जॉब

@YannTrevin गैलियो / MbUnit की स्थिति क्या है? मैंने Google कोड रिपॉजिटरी को देखा और इसमें कोई हालिया बदलाव नहीं हुआ। क्या विकास कहीं और हो रहा है या परियोजना ठप है?
वेस्ले विज़र

9

एक को चुनना और इसका उपयोग करना शायद यहां सबसे महत्वपूर्ण कदम है।

व्यक्तिगत रूप से मैं कुछ कारणों से NUnit को चुनूंगा । सबसे पहले और सबसे महत्वपूर्ण है टूलिंग सपोर्ट। विज़ुअल स्टूडियो 2010 के लिए एक मुफ्त ऐड-इन है , और सभी प्रमुख 3 पार्टी प्लगइन्स इसका समर्थन करते हैं। हर एक बिल्ड सिस्टम, टेस्ट कवरेज यूटिलिटी और CI सर्वर इसका समर्थन करता है। एक प्लगइन के बिना कई मामलों में। कोड स्तर पर, यह इस बिंदु पर किसी भी परिदृश्य के बारे में बस संभाल सकता है - डेटा चालित परीक्षण, विरासत, सार परीक्षण कक्षाएं, सामान्य परीक्षण कक्षाएं, सेटअप, आंसू नीचे, आदि। कुछ हद तक हमारे पास xUnit है क्योंकि NUnit बहुत समृद्ध है। और शक्तिशाली।

NUnit से परे, मुझे लगता है कि आप Yann द्वारा बताए अनुसार MBUnit + Gallio के लिए एक बहुत अच्छा तर्क दे सकते हैं - यह एक बहुत ही ठोस रूपरेखा है। अगर आपको हर संभव से बचना चाहिए तो वह MSTest होगा, जिसमें कुछ घातक खामियां हैं। आपके परीक्षण वर्गों पर कुछ बाधाओं जैसे कि कोई विरासत नहीं है, और पेशेवर या बेहतर दृश्य स्टूडियो SKUs पर निर्भरता होने के कारण पंजे। परीक्षणों को चलाने के लिए बिल्ड सर्वर पर विज़ुअल स्टूडियो की आवश्यकता शामिल है।


0

एक कारण NUNIT xUnit से अधिक उद्योग मानक बन गया है। लेकिन व्यक्तिगत रूप से, मैं xunit प्यार करता हूँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.