2010-09-24 9 views
7

हम कई सौ परीक्षण वर्ग, निम्न विशेषताओं के साथ चिह्नित उनमें से कुछ दर्जन के साथ: [TestFixture] [स्पष्ट] [श्रेणी ("IntegrationTests")] इसलिए वे केवल हमारे में रात भर में में चलेगा स्वचालित निर्माण शेष टेस्टफिक्चर में निर्दिष्ट श्रेणी नहीं है (और इन्हें स्पष्ट रूप से चिह्नित नहीं किया गया है)।NUnit चलाते समय और एक श्रेणी निर्दिष्ट करते समय, सभी अनुक्रमित परीक्षण भी शामिल किए जा सकते हैं?

<nunit2> 
    <test> 
     ... 
     <categories> 
      <include name="IntegrationTests" /> 
     </categories> 
     ... 
    </test> 
</nunit2> 

यह, ज़ाहिर है, अवर्गीकृत परीक्षण के किसी भी अमल नहीं करेगा:

यहाँ NAnt कार्य हम अपने परीक्षण निष्पादित करने के लिए चलाए जा रहे है।

मैं इस तरह कुछ करने के लिए सक्षम होने के लिए करना चाहते हैं:

<nunit2> 
    <test> 
     ... 
     <categories> 
      <include name="*" /> 
      <include name="IntegrationTests" /> 
     </categories> 
     ... 
    </test> 
</nunit2> 

जहां अवर्गीकृत परीक्षण के सभी एकीकरण परीक्षणों के साथ चलाया जाएगा। क्या यह संभव है? यदि हां, तो वाक्यविन्यास क्या है?

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

उत्तर

0

नहीं, आपको स्थिति दी गई है कि आप जो भी करना चाहते हैं उसे करने का कोई तरीका नहीं है NUnit। यदि आपने स्पष्ट विशेषता को हटा दिया है, तो आप उन सभी वर्गीकृत परीक्षणों को छोड़कर एक ही रन में कर सकते हैं जिन्हें आप नहीं चाहते हैं।

मूल रूप से, अगर आप श्रेणियों के लिए कूद कर, आप सभी परीक्षणों वर्गीकृत किया जाना चाहिए।

+0

यदि यह सुनिश्चित करने का कोई तरीका है कि सभी परीक्षणों को वर्गीकृत किया गया है तो मैं इसके साथ ठीक रहेगा? – bacar

8

मैं एक ही नाव में हूँ, और निराश हो रही थी जब तक मैं सिर्फ पता चला कि श्रेणी विशेषता सिर्फ एक परीक्षण या परीक्षण स्थिरता के लिए नहीं लागू किया जा सकता है, लेकिन एक पूरी विधानसभा के लिए।

मैं परीक्षण है कि मैं स्थानीय रूप से चलाने के साथ दो टेस्ट विधानसभाओं, और परीक्षण है कि केवल निर्माण सर्वर पर चलाना चाहिए के साथ एक और है। मैंने पहली दो परियोजनाओं में AssemblyInfo.cs में यह विशेषता जोड़ा: [assembly: NUnit.Framework.Category("Always")]। जैसा कि आप वर्णन करते हैं, तीसरी टेस्ट प्रोजेक्ट [Explicit, Category("PublicDatabase")] जैसे श्रेणी एटिब्यूट का उपयोग करती है। बिल्ड सर्वर NUnit को /include=Always,PublicDatabase के साथ आमंत्रित करता है और वांछित परिणाम होता है: पहले दो असेंबली में सभी परीक्षण चलते हैं, और तीसरे असेंबली रन में केवल PublicDatabase परीक्षण होते हैं।

जब मैं NUnit स्थानीय स्तर पर पहले दो परियोजनाओं पर चलाने के लिए, मैं सिर्फ यह व्यक्ति विधानसभाओं पर चलते हैं, पर सभी श्रेणियों को निर्दिष्ट करने की जरूरत नहीं है।

+0

आईआईयूसी, यह सिर्फ "सभी अनुक्रमित परीक्षणों" को भी नहीं चलाएगा। यह _all_ परीक्षणों को भी चलाएगा (असेंबली स्तर श्रेणी वाली असेंबली से), जिसमें कोई स्पष्ट परीक्षा है (मुझे लगता है कि श्रेणियां additive हैं)? – bacar

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

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