2010-05-27 22 views
12

मैंने न्यूटिट में एक परीक्षण सूट बनाया है जो विभिन्न असेंबली में कई अलग-अलग इकाई परीक्षण जुड़नारों का संदर्भ देता है।NUnit नहीं चल रहा है सूट परीक्षण

मैं काफी NUnit's docs से उदाहरण कोड का उपयोग किया है:

namespace NUnit.Tests 
{ 
    using System; 
    using NUnit.Framework; 
    using System.Collections; 

    public class AllTests 
    { 
     [Suite] 
     public static IEnumerable Suite 
     { 
      get 
      { 
       ArrayList suite = new ArrayList(); 
       suite.Add(new VisionMap.DotNet.Tests.ManagedInteropTest.DotNetUtilsTest()); 
       return suite; 
      } 
     } 
    } 
} 

मेरा लक्ष्य तो मैं उन सब को एक बैच में चला सकते हैं इसके बाद के संस्करण की सूची पर कई परीक्षण जोड़ना है।

लेकिन मैं इस मिल जब मैं NUnit के जीयूआई में DLL लोड करने का प्रयास: alt text

क्या मैं गलत कर रहा हूँ?

मुझे पता है कि दस्तावेज़ों का कहना है कि जीयूआई सूट नहीं चलाएगा, लेकिन मैंने कंसोल की भी कोशिश की है। क्या कोई मुझे बता सकता है कि सूट किस अच्छे हैं और मैं अपने लक्ष्य को प्राप्त करने के लिए उनका उपयोग कैसे कर सकता हूं?

मैं नुनिट 2.5.0.9122 का उपयोग कर रहा हूं।

संपादित

ठीक है, कोई जवाब आगामी हैं। मुझे अंत में एक वैकल्पिक समाधान मिला: श्रेणियाँ। मैं उन्हें उपयुक्त श्रेणियां देकर टेस्ट फिक्स्चर समूह करता हूं और फिर मैं बैच में उनमें से एक सबसेट चला सकता हूं, जबकि अभी भी एक और सबसेट को अनदेखा कर रहा हूं।

फिर भी, यह अजीब बात है कि यह सूट सुविधा पूरी तरह टूटा हुआ प्रतीत होता है।

+0

मैं किसी ने मुझे समझा की उम्मीद में एक इनाम जोड़ दिया है क्या सूट के लिए या कैसे मैं कमांड लाइन से उन सभी को चलने के बिना कुछ विधानसभाओं के भीतर से परीक्षण का एक बैच बना सकते हैं अच्छे हैं। –

+0

शर्मिंदगी की शर्मिंदगी में मदद नहीं मिली ... पोस्ट किया गया एकमात्र उत्तर प्रश्न का उत्तर देने के करीब नहीं आता है। –

+0

मैं हमेशा इस तरह की चीज़ों के लिए श्रेणियों का उपयोग करता हूं। ऐसा लगता है कि यह अधिक व्यापक रूप से समर्थित है। –

उत्तर

3

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

हालांकि, दूसरों के और भविष्य के संदर्भ के लिए, आप अभी भी सूट में सूट का उपयोग कर सकते हैं। आपको उन्हें कंसोल से चलाने और केवल/स्थिरता विकल्प का उपयोग करना होगा। उदाहरण के लिए, सूट आप ऊपर निर्दिष्ट चलाने के लिए, आप चलाना चाहते हैं (अपने वर्ग मानते हुए एक विधानसभा AllTests.dll में संकलित किया गया था):

nunit-console /fixture:AllTests.Suite AllTests.dll 

आप का कोई सबूत या में सुइट्स को चलाने के लिए जिस तरह से नहीं देखेंगे जीयूआई - यह दस्तावेज में नोट किया गया है। हालांकि आप उन्हें कंसोल से चला सकते हैं जो उपरोक्त आदेशों का उपयोग करके जीयूआई में बनाया गया है।


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

[Suite] 
    public static IEnumerable MySuite 
    { 
     get 
     { 
      var suite = new ArrayList{new TestClass1(arg1), TestClass2(arg2)}; 
      return suite; 
     } 
    } 
+0

संयोग से, यदि कोई भी मेरे द्वारा किए गए कार्यों की तुलना में रनटाइम पर परीक्षण के व्यवहार को नियंत्रित करने/नियंत्रित करने का बेहतर तरीका जानता है, तो कृपया टिप्पणी करें। मैंने नूनिट डॉक्स और मेलिंग सूचियों को खोजने में कुछ समय बिताया और यह सबसे अच्छा था जिसके साथ मैं आ सकता था! – imoatama

3

क्या कोई कारण है कि आप "TestSuite" के बजाय "IENumerable" लौट रहे हैं?

[Suite] 
public static TestSuite Suite 

अद्यतन

पढ़ना NUnit स्थल पर पृष्ठ के तल पर छोटे प्रिंट, ऐसा सुइट प्रकार परीक्षण गुई धावक में में नहीं दिखाई देगा लगता है, इसलिए मुझे लगता है कि है कि मुद्दा है :)

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

अद्यतन 2

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

http://www.nunit.org/index.php?p=multiAssembly&r=2.5.5

+0

दस्तावेज़ों का कहना है कि मुझे क्या करना चाहिए: http://www.nunit.org/index.php?p=suite&r=2.4.7 मुझे लगता है कि इसे परीक्षण से एनयूनीट के संस्करण को डीकॉप्लिंग करने के साथ करना है। –

+0

ए। मैं/स्थिरता विकल्प का उपयोग नहीं कर रहा हूं और, सबसे महत्वपूर्ण बात यह है कि बी। कैसे _am_ मुझे सूट चलाने के लिए चाहिए? मैंने जीयूआई और कंसोल दोनों की कोशिश की .. यह काम नहीं करता है। –

+0

धन्यवाद, मैं इसके बजाय कोशिश करूंगा। लेकिन आपके प्रश्न का उत्तर देने के लिए, हां, यही वह है जिसे मैं हासिल करने की कोशिश कर रहा हूं, और मैं इस धारणा के तहत था कि सूट के लिए यही है। यदि नहीं, तो वे क्या हैं? –

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