यूनिट परीक्षण के लिए दृश्य स्टूडियो 2008 के टेस्ट प्रोजेक्ट बनाम एनयूनिट? [बन्द है]


254

मैं काम पर एक नई परियोजना शुरू करने जा रहा हूं और इकाई परीक्षण में शामिल होना चाहता हूं। हम VS 2008, C # और ASP.NET MVC सामान का उपयोग करेंगे। मैं या तो NUnit का उपयोग कर रहा हूं या परीक्षण परियोजनाओं का निर्माण कर रहा हूं जो VS2008 में है, लेकिन मैं अन्य सुझावों पर शोध करने के लिए खुला हूं। क्या एक प्रणाली दूसरे से बेहतर है या शायद दूसरे की तुलना में उपयोग करना / समझना आसान है? मैं इस परियोजना को आगे बढ़ने के हमारे प्रयासों के लिए "सर्वोत्तम अभ्यास" के रूप में स्थापित करना चाहता हूं।

किसी भी मदद और सुझाव के लिए धन्यवाद !!

जवाबों:


99

डोक ने वीएस 200 के सभी प्रॉजेक्ट को टेस्ट प्रोजेक्ट्स का नाम दिया है, यहां एनयूनाइट के प्रो हैं।

  • NUnit में एक नकली रूपरेखा है।
  • NUnit को IDE के बाहर चलाया जा सकता है, यह उपयोगी हो सकता है यदि आप CC .Net पर एक गैर MS बिल्ड सर्वर पर परीक्षण चलाना चाहते हैं
  • दृश्य स्टूडियो की तुलना में NUnit में अधिक संस्करण हैं। आपको नए संस्करण के लिए वर्षों का इंतजार नहीं करना पड़ेगा और नई सुविधाएँ प्राप्त करने के लिए आपको IDE के नए संस्करण को स्थापित करने की आवश्यकता नहीं है।
  • NUnit के लिए एक्सटेंशन विकसित किए जा रहे हैं जैसे पंक्ति-परीक्षण आदि।
  • Visual Studio परीक्षण किसी कारण से शुरू होने में लंबा समय लेता है। यह 2008 में बेहतर है लेकिन फिर भी मेरे स्वाद के लिए बहुत धीमा है। यदि आप कुछ नहीं तोड़ते हैं, तो यह देखने के लिए जल्दी से एक परीक्षण चल रहा है। IDE से परीक्षण चलाने के लिए Testdriven.Net जैसी किसी चीज के साथ NUnit वास्तव में बहुत तेज है। विशेषकर जब एकल परीक्षण चल रहे हों।
    Kjetil Klaussen के कारण यह Visual Studio टेस्टरनर के कारण होता है, TestDriven.Net में MSTest परीक्षण चलाने से MSTest प्रदर्शन NUnit के समान हो जाता है।

19
क्या आप IDE के बाहर MSTest परीक्षण चलाने के लिए सिर्फ mstest.exe का उपयोग नहीं कर सकते हैं?
फिलिप वेल्स

13
ननिट का नकली ढांचा होना ज्यादा फायदा नहीं है। मैं Moq फ्रेमवर्क के साथ VS 2008 यूनिट टेस्ट प्रोजेक्ट्स का उपयोग कर रहा हूं, जो एक उपन्यास दृष्टिकोण का उपयोग करता है, LINQ अभिव्यक्ति पेड़ों का लाभ उठाता है
DSO

5
मेरे लिए वैसे भी ननिट के लिए एक और प्लस, यह है कि रेसपेर के पास बहुत अच्छा यूआई है जो उसके चारों ओर लिपटा है जो वीएस परीक्षण घटकों की तुलना में बहुत तेज है। यह आपके कोड में विफल परीक्षणों के स्टैक ट्रेस को हाइपरलिंक भी करता है।
जेफ पुटज

7
यूनिट परीक्षण वीएस 2008 के पेशेवर संस्करण में शामिल है।
22:17 पर user179700

3
@ जेफ़ पुट्ज़: रेस्परर विज़ुअल स्टूडियो यूनिट-टेस्ट भी चला सकता है, टेस्ट प्रोजेक्ट के बाहर भी।
पॉल रूआन

64

यूनिट-टेस्टिंग फ्रेमवर्क वास्तव में बहुत ज्यादा मायने नहीं रखता है, क्योंकि आप अलग-अलग प्रोजेक्ट फाइलों और सशर्त संकलन (जैसे, वीएस-> NUnit) के साथ टेस्ट कक्षाओं को बदल सकते हैं:

 #if! NUNIT
  Microsoft.VisualStudio.TestTools.UnitTesting का उपयोग कर;
 #अन्य
  NUnit.Framework का उपयोग करना;
  TestClass = NUnit.Framework.estFixtureAttribute का उपयोग करना;
  TestMethod = NUnit.Framework.estAttribute का उपयोग करना;
  TestInitialize = NUnit.Framework.SetUpAttribute का उपयोग करना;
  TestCleanup = NUnit.Framework.earDownAttribute का उपयोग करना;
  TestContext = System.String का उपयोग करना;
  का उपयोग कर परिनियोजन = NUnit.Framework.DescriptionAttribute;
 #अगर अंत

TestDriven.Net प्लगइन अच्छा है और बहुत महंगा नहीं है ... केवल सादे VS2008 के साथ आपको अपने परीक्षण वर्ग या परीक्षण सूची से परीक्षण ढूंढना होगा। TestDriven.Net के साथ आप अपना परीक्षण उस कक्षा से सीधे चला सकते हैं जिसका आप परीक्षण कर रहे हैं। आखिरकार, यूनिट टेस्ट को बनाए रखना आसान है और डेवलपर के पास।


12
मैंने इसे एक वोट दिया क्योंकि NUnit में MSTest की तुलना में अधिक समृद्ध वाक्यविन्यास है, जिसका अर्थ है कि आप MSTest -> NUnit से जा सकते हैं, लेकिन इसके विपरीत नहीं जब तक कि आप बहुत सावधान न हों। इतिहास से पता चलता है कि हम में से कम से कम एक नहीं हैं।
थॉमस आइड

2
मैं थॉमस से सहमत हूं। यह मानकर काम करेगा कि आप सबसे बुनियादी मुखर बयानों का उपयोग कर रहे हैं, लेकिन NUnit बाधा मॉडल बहुत शक्तिशाली है और MSTest पर NUnit चुनने के लिए पर्याप्त है।
मार्क

मेरा मानना ​​है, यह दृष्टिकोण EntLib परीक्षणों में एमएस पैटर्न और अभ्यास समूह द्वारा लिया गया है।
रॉबी-वाई

1
@ डान नीली यदि आप निजीकरण का परीक्षण कर रहे हैं तो आप इसे गलत कर रहे हैं :(
जेडीपीकेहम

2
@JDPeckham मैं यह नहीं कह रहा हूं कि किसी उपकरण के साथ क्या करना चाहिए / नहीं करना चाहिए, लेकिन दिन के अंत में काम पूरा करना सबसे महत्वपूर्ण काम है। यदि इसका मतलब है कि एक हैचेट के पीछे की ओर के साथ एक कील को तेज़ करना क्योंकि उपकरण विक्रेता हथौड़ों को नहीं बेचते हैं, तो हैचेट निर्माताओं को बस नाराज होने के साथ रहना होगा।
डैन इज़ फ़िडलिंग बाई फायरलाइट

34

VS2008 बिल्ट-इन यूनिट टेस्टिंग फ्रेमवर्क के लाभ / परिवर्तन

  1. 2008 संस्करण अब पेशेवर संस्करणों में उपलब्ध है (इससे पहले वीएस के महंगे संस्करणों की आवश्यकता थी, यह सिर्फ डेवलपर इकाई परीक्षण के लिए है।) जो खुले / बाहरी परीक्षण ढांचे के एकमात्र विकल्प के साथ बहुत सारे डेवलपर्स को छोड़ दिया है।
  2. एकल कंपनी द्वारा समर्थित एपीआई में निर्मित।
  3. परीक्षण चलाने और बनाने के लिए समान टूल का उपयोग करें (आप कमांड लाइन MSTest का उपयोग करके उन्हें चला सकते हैं)
  4. सरल डिजाइन (कोई मॉक फ्रेमवर्क नहीं दिया गया है, लेकिन यह कई प्रोग्रामर्स के लिए एक शानदार शुरुआत है)
  5. दीर्घकालिक समर्थन प्रदान किया गया (मुझे अब भी याद है कि nDoc का क्या हुआ, मैं परीक्षण ढांचे के लिए प्रतिबद्ध नहीं होना चाहता जो 5 वर्षों में समर्थित नहीं हो सकता है, लेकिन मैं अभी भी nnnit को एक महान रूपरेखा मानता हूं।)
  6. यदि आपके बैकएंड के रूप में टीम फाउंडेशन सर्वर का उपयोग किया जाता है, तो आप एक साधारण फैशन में असफल परीक्षण डेटा के साथ कार्य आइटम या बग बना सकते हैं।

4
मुझे लगता है कि यह अभी भी माइक्रोसॉफ्ट के परीक्षण के दृष्टिकोण के बारे में बता रहा है कि यह मानक संस्करण में नहीं है, बस पेशेवर और इसके बाद के संस्करण।
J Wynia

सहमत हूं, मैं इसे मानक और ऊपर देखना पसंद करूंगा। एक्सप्रेस संस्करणों में यह एक शुरुआत के लिए ओवरकिल होगा।
सिमर

1
@ जे व्यानिया: केवल उनके फैसले को पढ़ना इसे प्रोफेशनल और उससे ऊपर के रूप में शामिल करना, जैसा कि परीक्षण के बारे में उनके विचार के बारे में कुछ कहना इसमें बहुत अधिक पढ़ा जा रहा है। एक दार्शनिक की तुलना में यह एक व्यापार निर्णय होने की अधिक संभावना है।
जेसन

@Simara टेस्टिंग शॉड का विकास जीवनचक्र में निहित होना चाहिए। यह एक्सप्रेस संस्करणों में प्रदान किया जाता है।
ईस्टएंडर

33

मैं 2 साल से NUnit का उपयोग कर रहा हूं। सब ठीक है, लेकिन मेरा कहना है कि वीएस में यूनिट सिस्टम बहुत अच्छा है क्योंकि यह गुई के अंदर है और अधिक आसानी से निजी समारोह के लिए परीक्षण कर सकता है बिना गड़बड़ किए। इसके अलावा, वीएस की यूनिट टेस्टिंग आपको कवर करने और अन्य सामान जो एनयूनाइट अकेले नहीं कर सकती है।


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

7
@ लोवेन: यदि आप निजीकरण का परीक्षण कर रहे हैं, तो जनता आप वास्तव में एक अंतर परीक्षण परीक्षण कर रही है, न कि एक इकाई परीक्षण। (बेशक मैं एक टीडीडी जोडील नहीं हूं और मैं शायद सिर्फ जनता का परीक्षण करूंगा ... लेकिन मुझे ऐसा लगता है कि मैं एक लड़ाई शुरू करने में मदद कर रहा हूं)
मैथ्यू व्हाइटेड

11
@ मैथ्यू, एकीकरण परीक्षण एक साथ दो या अधिक इकाइयों का परीक्षण कर रहा है। निजी तरीकों का परीक्षण करना, इनकैप्सुलेशन का सिर्फ (बहुत बड़ा) उल्लंघन है और इसके कारण भंगुर इकाई परीक्षण हो सकते हैं जिन्हें क्रियान्वयन में हर बार बदलाव करना पड़ता है।
ओमेर राऊचवर्गर

3
जब आप RTM निर्माण कर रहे हों, तो इसे निकालने के लिए एक संकलक के निर्देश के साथ आप [असेंबली: इंटरनल्सविजेल्टो (...)] का भी उपयोग कर सकते हैं।
इलेन गैलोवे

1
मैं हर समय अपने निजी लोगों को स्पर्श करता हूं :) मुझे लगता है कि विशेष रूप से निजी सदस्यों को परीक्षण करने वाले कॉलर से बचने के लिए परीक्षण करने के लिए मूल्य है जो कि बहुत अधिक जटिल सेटअप की आवश्यकता होती है।
क्रैकरजैक

14

विजुअल स्टूडियो के टेस्टिंग फ्रेमवर्क की एक छोटी सी झुंझलाहट यह है कि यह कई टेस्ट रन फाइलें बनाएगा जो आपके प्रोजेक्ट डायरेक्टरी को अव्यवस्थित करते हैं - हालांकि यह एक बड़ी बात नहीं है।

इसके अलावा, यदि आपके पास TestDriven.NET जैसे प्लगइन की कमी है, तो आप Visual Studio वातावरण में अपने NUnit (या MbUnit, xUnit, आदि) इकाई परीक्षणों को डिबग नहीं कर सकते, जैसा कि आप Microsoft VS परीक्षण ढांचे के साथ कर सकते हैं, जो इसमें बनाया गया है।


3
आप दृश्य स्टूडियो 2005 के भीतर NUnit परीक्षण डीबग कर सकते हैं।
जेसन शॉर्ट

आप xunit को डीबग भी कर सकते हैं लेकिन यह स्पष्ट नहीं है कि इसे कैसे सेट किया जाए (गुण पृष्ठ)
annakata

1
आप आसानी से चल रहे NUnit को डिबगर से जोड़कर NUnit को डिबग कर सकते हैं जैसे ग्रिमस ने कहा। यहां कोई वास्तविक नुकसान नहीं है।
ऐनी शूसेलर

1: वीएस सेटिंग्स में विन्यास योग्य परीक्षणों की संख्या - मैंने इसे एक पर सेट किया है। 2: उपरोक्त टिप्पणियों से सहमत - संभव है, लेकिन अजीब है, 3: कुल मिलाकर, मैं वीएस परीक्षण वातावरण में निर्मित पसंद करता हूं।
राउल रुबिन

14

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

यह समीक्षा थोड़ी पुरानी है, लेकिन इसे और विस्तार से बताते हैं:

http://codebetter.com/blogs/paul.laudeman/archive/2006/08/15/Using-ReSharper-as-an-essential-part-of-your-TDD-toolkit.aspx


R # के लिए गैलियो प्लगइन के साथ आप MSTest भी चला सकते हैं।
Kjetil Klaussen 12

कोडरश कोड में सही पर परीक्षण करता है ताकि आप एक परीक्षण चला सकें, या सभी परीक्षण कक्षा में या नाम स्थान पर रख सकें। यहाँ देखें: community.devexpress.com/blogs/markmiller/archive/2009/11/16/...
रयान Lundy

Resharper MSTest परीक्षण भी चलाएगा।
JDPeckham

11

ग्रीनफील्ड प्रोजेक्ट के लिए XUnit एक और संभावना है। यह शायद एक अधिक सहज वाक्यविन्यास मिल गया है, लेकिन वास्तव में अन्य रूपरेखाओं के साथ संगत नहीं है।

http://www.codeplex.com/xunit


11

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

कुछ अपने निजी तरीकों का परीक्षण करना चाह सकते हैं, कुछ नहीं कर सकते, यह एक अलग विषय है।

मेरी चिंता यह है कि जब मैं यूनिट परीक्षण लिख रहा हूं तो उन्हें बेहद नियंत्रित किया जाना चाहिए ताकि मुझे पता चले कि मैं क्या परीक्षण कर रहा हूं और वास्तव में मैं इसका परीक्षण कैसे कर रहा हूं। यदि स्वतः उत्पन्न कोड है तो मैं उस स्वामित्व से कुछ खो रहा हूं।


11

मैंने दोनों का उपयोग करके कुछ TDD किए हैं और (शायद मैं थोड़ा बेवकूफ हूं) nnit मुझे उपयोग करने के लिए बहुत तेज़ और सरल लगता है। और जब मैं बहुत कुछ कहता हूं, तो मेरा मतलब बहुत होता है।

MS Test में, हर जगह बहुत अधिक विशेषताएँ होती हैं - वास्तविक परीक्षण करने वाला कोड वह छोटी रेखाएँ हैं जिन्हें आप यहाँ और वहाँ पढ़ सकते हैं। बड़ी गड़बड़ी। NUnit में, कोड जो परीक्षण करता है वह विशेषताओं पर हावी होता है, जैसा कि उसे करना चाहिए।

इसके अलावा, nUnit में, आपको बस उन परीक्षणों पर क्लिक करना होगा जिन्हें आप चलाना चाहते हैं (केवल एक? एक वर्ग को कवर करने वाले सभी परीक्षण? एक विधानसभा? समाधान?)। एक बार दबाओ। और खिड़की साफ और बड़ी है। आपको स्पष्ट हरी और लाल बत्ती मिलती है। आप वास्तव में जानते हैं कि एक दृष्टि में क्या होता है।

VSTS में, परीक्षण सूची को स्क्रीन के नीचे जाम कर दिया जाता है, यह छोटा और बदसूरत है। आपको यह जानने के लिए दो बार देखना होगा कि क्या हुआ था। और तुम सिर्फ एक परीक्षा नहीं चला सकते (ठीक है, मुझे अभी तक पता नहीं चला!)।

लेकिन मैं गलत हो सकता हूँ, निश्चित रूप से - मैं सिर्फ "VSTS का उपयोग करके सरल TDD कैसे करें" के बारे में 21 ब्लॉग पोस्ट पढ़ता हूं। मुझे और पढ़ना चाहिए था, आप सही हैं।

NUnit के लिए, मैंने एक पढ़ा। और मैं उसी दिन TDDing कर रहा था। मस्ती के साथ।

वैसे, मैं आमतौर पर Microsoft उत्पादों से प्यार करता हूं। विजुअल स्टूडियो वास्तव में सबसे अच्छा उपकरण है जिसे एक डेवलपर खरीद सकता है - लेकिन विजुअल स्टूडियो टीम सिस्टम में TDD और वर्क आइटम प्रबंधन वास्तव में बेकार है।

शुभकामनाएं। Sylvain।


9

मुझे संदेश मिला कि "NUnit फ़ाइल संरचना VSTest से अधिक समृद्ध है" ... निश्चित रूप से यदि आप NUnit फ़ाइल संरचना को पसंद करते हैं, तो आप इस समाधान को दूसरे तरीके से उपयोग कर सकते हैं, जैसे कि (NUnit-> VS):

 #if !MSTEST
  using NUnit.Framework;
 #else
  using Microsoft.VisualStudio.TestTools.UnitTesting;
  using TestFixture = Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute;
  using Test = Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute;
  using SetUp = Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute;
  using TearDown = Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanupAttribute;
 #endif

या किसी भी अन्य रूपांतरण ... :-) यहाँ यह संकलक के लिए उपनाम है।


1
मुझे समझ नहीं आ रहा है कि आप यहाँ क्या कह रहे हैं।
पॉजिटिव

कोई स्थिरता स्तर सेटअप / अशांति :( या क्या वे मानते हैं कि हम ctor और dtor का उपयोग करते हैं?
JDPeckham

9

पहले मैं एक गलत कथन को सही करना चाहता हूं: आप कमांड लाइन का उपयोग करके विजुअल स्टूडियो के बाहर एमएसटेस्ट चला सकते हैं। हालांकि कई CI टूल जैसे कि TeamCity को NUnit के लिए बेहतर समर्थन है (शायद msTest के अधिक लोकप्रिय होने के कारण यह बदल जाएगा)। मेरी वर्तमान परियोजना में हम दोनों का उपयोग करते हैं और एकमात्र बड़ा अंतर जो हमने पाया है वह यह है कि mstest हमेशा 32bit के रूप में चलता है जबकि Nnnit 32bit या 64bit परीक्षण के रूप में चलता है जो केवल तभी मायने रखता है जब आपका कोड देशी कोड का उपयोग करता है जो कि 32/64 निर्भर है।


8

मैंने MSTest के साथ शुरुआत की लेकिन एक सरल कारण के लिए स्विच किया। MSTest अन्य विधानसभाओं से परीक्षण विधियों के वंशानुक्रम का समर्थन नहीं करता है।

मुझे एक ही परीक्षा को कई बार लिखने के विचार से नफरत थी। विशेष रूप से एक बड़ी परियोजना पर जहां परीक्षण विधियां आसानी से 100 परीक्षणों में चल सकती हैं।

NUnit वास्तव में मुझे क्या चाहिए। केवल वही चीज जो NUnit के साथ गायब है वह एक Visual Studio Addin है जिसमें प्रत्येक परीक्षण के Red / Green स्थिति (जैसे VSTS) को प्रदर्शित किया जा सकता है।



7

यदि आप MSTest या nUnit पर विचार कर रहे हैं, तो मैं आपको mbUnit देखने की सलाह देता हूं। मेरे कारण हैं

  1. TestDriven.Net संगतता। कुछ भी नहीं धड़कता है TestDriven.Net.eRunWithDebugger एक कीबोर्ड संयोजन के लिए बाध्य है।
  2. गैलियो ढांचा। गैलियो nUnits की तरह एक परीक्षण धावक है। फर्क सिर्फ इतना है कि अगर आपने nnnit, msTest, xUnit या mbUnit में अपने परीक्षण लिखे हैं तो इसकी परवाह नहीं है। वे सभी भाग जाते हैं।
  3. NUnit के साथ संगतता। NUnit की सभी विशेषताएँ mbUnit द्वारा समर्थित हैं। मुझे लगता है कि आपको अपनी विशेषताओं को बदलने की आवश्यकता नहीं है (आपको यह देखना होगा), बस आपके संदर्भ और usings।
  4. संग्रह का दावा है। mbUnit में संग्रहकर्ता वर्ग सहित अधिक मुखर मामले हैं। मूल रूप से आपको यह देखने के लिए अपने स्वयं के परीक्षण लिखने की आवश्यकता नहीं है कि क्या 2 संग्रह समान हैं।
  5. संयुक्त परीक्षण। क्या यह अच्छा नहीं होगा यदि आप डेटा के दो सेट की आपूर्ति कर सकते हैं और डेटा के सभी संयोजनों के लिए एक परीक्षण प्राप्त कर सकते हैं। यह mbUnit में है।

मैंने मूल रूप से अपनी [RowTest ....] कार्यक्षमता के mbUnit becasue को उठाया है, और मुझे वापस जाने का एक भी कारण नहीं मिला है। मैंने nUnit से अपने सभी सक्रिय परीक्षण सूटों को स्थानांतरित किया, और फिर कभी पीछे मुड़कर नहीं देखा। तब से मैंने दो अलग-अलग विकास टीमों को लाभ में परिवर्तित कर दिया है।


6

जहां तक ​​मुझे पता है, इन दिनों .NET के साथ यूनिट टेस्टिंग के लिए चार फ्रेमवर्क उपलब्ध हैं

  • NUnit
  • MbUnit
  • MSTest
  • XUnit

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

अगर आप अभी यूनिट टेस्टिंग से शुरुआत कर रहे हैं तो शायद इससे ज्यादा फर्क नहीं पड़ता। एक बार जब आप गति करने के लिए तैयार हो जाते हैं, तो आप यह पहचानने की बेहतर स्थिति में होंगे कि आपकी आवश्यकताओं के लिए कौन सा ढांचा सर्वोत्तम है।


6

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


3
आप वास्तव में प्रोजेक्ट स्टेप्स को मैन्युअल रूप से संपादित करके और प्रोजेक्टटाइपगाइड्स मानों में जोड़कर विज़ुअल स्टूडियो को मूर्ख बना सकते हैं, जो इसका उपयोग परीक्षण परियोजनाओं की पहचान करने के लिए करते हैं: & lt; प्रोजेक्टटाइपगाइड्स & जीटी; {3AC096D0-A1C2-E12C-1390-A8335801FDAB}; FAE04EC0-3FF1111; BF4B-00C04F79EFBC} & lt; / ProjectTypeGuids & gt;
पॉल रूएन

5

MSTest अनिवार्य रूप से NUnit को थोड़ा नया रूप दिया गया है, जिसमें कुछ नए फीचर्स (जैसे असेंबली सेटअप और टैडडाउन, न कि केवल फिक्सचर और टेस्ट स्तर), और कुछ बेहतरीन बिट्स (जैसे कि नया 2.4 कंस्ट्रक्शन सिंटेक्स) गायब हैं। NUnit अधिक परिपक्व है, और अन्य विक्रेताओं से इसके लिए अधिक समर्थन है; और निश्चित रूप से यह हमेशा मुफ़्त रहा है (जबकि MSTest ने इसे केवल 2008 के व्यावसायिक संस्करण में बनाया था, इससे पहले कि यह अधिक महंगी SKU के रूप में था), अधिकांश ALT.NET परियोजनाएं इसका उपयोग करती हैं।

यह कहने के बाद कि, कुछ ऐसी कंपनियाँ हैं जो अविश्वसनीय रूप से किसी ऐसी चीज़ का उपयोग करने में अनिच्छुक हैं जिस पर Microsoft लेबल नहीं है, और विशेष रूप से इतना BSS कोड। इसलिए एक आधिकारिक एमएस परीक्षण ढांचा होना प्रेरणा हो सकता है कि उन कंपनियों को परीक्षण करने की आवश्यकता है; और चलो ईमानदार होना चाहिए, यह परीक्षण है जो मायने रखता है, न कि आप किस उपकरण का उपयोग करते हैं (और ऊपर Tuomas Hietanen के कोड का उपयोग करके , आप लगभग अपना परीक्षण ढांचा विनिमेय बना सकते हैं)।


मुझे NUnit के गर्भनिरोधक सिंटैक्स बहुत पसंद हैं, लेकिन मुझे लगता है कि आपको इसे SetUpऔर TearDownविशेषताओं के बारे में पढ़ना चाहिए : jamesnewkirk.typepad.com/posts/2007/09/why-you-should-.html
कोई नहीं

4

कोड अनुबंध प्रणाली के .NET 4.0 में जारी होने और स्थैतिक परीक्षक की उपलब्धता के साथ , आपको सैद्धांतिक रूप से कम परीक्षण मामलों और Pex जैसे टूल को लिखने की आवश्यकता होगी उन मामलों की पहचान करने में मदद करेगा। इसे हाथ में चर्चा से संबंधित करते हुए, यदि आपको अपने यूनिट परीक्षणों के साथ कम करने की आवश्यकता है क्योंकि आपके अनुबंध आपकी पूंछ को कवर कर रहे हैं, तो क्यों न केवल आगे बढ़ें और अंतर्निहित टुकड़ों का उपयोग करें क्योंकि यह प्रबंधन करने के लिए एक कम निर्भरता है। इन दिनों, मैं सादगी के बारे में हूं। :-)

यह सभी देखें:


3

मैं MS के छोटे परीक्षण ढांचे का उपयोग करना पसंद करूंगा, लेकिन अभी के लिए NUnit के साथ चिपका हूं। एमएस के साथ समस्याएं आम तौर पर हैं (मेरे लिए)

  • साझा किए गए "परीक्षण" फ़ाइल (व्यर्थ) जिसे बनाए रखा जाना चाहिए
  • टेस्ट सूची कई डेवलपर्स / वीसीएस के साथ संघर्ष का कारण बनती है
  • खराब एकीकृत यूआई - भ्रामक सेटअप, बोझिल परीक्षण चयन
  • कोई अच्छा बाहरी धावक नहीं

कैविट्स - अगर मैं एक aspx साइट का परीक्षण कर रहा था, तो मैं निश्चित रूप से MS का उपयोग करूंगा - यदि मैं एकल विकसित कर रहा था, तो MS भी ठीक होगा - अगर मेरे पास सीमित कौशल था और NUnit को कॉन्फ़िगर नहीं कर सकता था :)

मुझे अपने परीक्षणों को लिखना और NUnitGUI को फायर करना बहुत आसान लगता है या दूसरे मोर्चे के अंत में से एक है (टेस्टड्राइव अभी तक बहुत अधिक दूर है)। कमांडलाइन संस्करण के साथ डिबगिंग सेट करना भी बहुत आसान है।


अभी मैं MS टेस्ट चलाने के लिए Resharper का उपयोग कर रहा हूं, इसलिए मैं उन्हें ज्यादा बुरा नहीं मानता। मैं CodeRush + RefactorPro पसंद करता हूं, हालांकि यह वह नहीं है जो हम यहां उपयोग करते हैं। हो सकता है कि एमएस टेस्ट के लिए भी उनके पास एक अच्छा धावक हो।
एंड्रयू बैकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.