NUnit

2012-02-01 14 views
6

में आक्रमणों को पकड़ना परीक्षण विफल होने पर कुछ प्रासंगिक जानकारी लॉग करना चाहते हैं (जैसे स्क्रीनशॉट कैप्चर करना)। क्या न्यूटिट फ्रेमवर्क में कोई विस्तारशीलता बिंदु है जहां मैं इसे कर सकता हूं? आदर्श रूप में यह होगा:NUnit

[TearDown] 
    public void Down(AssertionException ex) {} 

लेकिन हम इसे जरूरत नहीं है। मैं एक ऐड-इन बनाने की कोशिश की लेकिन कैसे चलाने के समय में यह रजिस्टर करने के लिए पता नहीं है:

[NUnitAddin] 
public class UITestCase : TestCaseBase, NUnit.Core.EventListener, NUnit.Core.Extensibility.IAddin { 
    ............. 
    public void UnhandledException(Exception exception){} 

    public bool Install(NUnit.Core.Extensibility.IExtensionHost host) { 
     IExtensionPoint listeners = host.GetExtensionPoint("EventListeners"); 
     listeners.Install(this); 
     return true; 
    } 

}

UITestCase सभी यूआई परीक्षण के लिए अपने आधार वर्ग है। Install() विधि अभी कॉल नहीं है। किसी भी युक्तियां की सराहना की जाएगी।

अद्यतन: एक ऐड-इन के लिए पंजीकृत होने के लिए परीक्षण NUnit धावक के साथ चलाने के लिए है (मेरे मामले में यह वी.एस. के लिए TestDriven.Net प्लगइन था) और EventListener सदस्यों ठीक से कहा जाता हो जाता है। समस्या यह है कि के बाद वे सभी कहलाते हैं TearDown/TestFixtureTearDown विधियां (मेरा संदर्भ गुम हो गया है)।

मेरी टियरडाउन में TestContext.CurrentContext.Result का उपयोग करने की कोशिश की लेकिन तक पहुँचने या तो State या Status संपत्ति फेंकता NullReferenceException :(

उत्तर

2

NUnit 2.6 TestContext.CurrentContext को अपग्रेड करने के बाद काम करना शुरू कर के रूप में उम्मीद।

0

मुझे लगता है कि आप अपवाद को पकड़ने के लिए और फिर अंदर स्क्रीनशॉट पर कब्जा करने जैसे कुछ कस्टम क्रिया कर अपने परीक्षा पद्धति के अंदर कोशिश पकड़ उपयोग कर सकते हैं पकड़ने।

+0

अरे नहीं। जब आपके पास कुछ हज़ार परीक्षण होते हैं तो यह कोई विकल्प नहीं है। – UserControl

+0

क्या आप कृपया मुझे बता सकते हैं कि यह डेटा संचालित परीक्षण है या आपके पास हजार अलग-अलग परीक्षण मामले हैं। –

2

मुझे लगता है कि IAddin दृष्टिकोण सबसे वादा किया है, हालांकि EventListeners सकता है नहीं आपके लिए उपयुक्त विस्तार बिंदु से। आप TestCaseBuilders या TestDecorators एक्सटेंशन की कोशिश की है?

,210

उदाहरण के लिए, TestDecorators प्रलेखन राज्यों:

उद्देश्य

TestDecorators एक परीक्षण को संशोधित करने में सक्षम हैं के बाद यह का निर्माण किया गया है।

एक्सटेंशन प्वाइंट

ऐड-इन नाम से इस विस्तार के बिंदु तक पहुँचने के लिए मेजबान का उपयोग करें:

IExtensionPoint testDecorators = host.GetExtensionPoint ( "TestDecorators"); इंटरफ़ेस

विस्तार वस्तु ITestDecorator इंटरफ़ेस को लागू करना चाहिए स्थापित करने के लिए पारित कर दिया:

  1. वापसी परीक्षण असंशोधित:

    public interface ITestDecorator  
    {  
        Test Decorate(Test test, MemberInfo member); 
    } 
    

    डेकोरेट विधि क्या इसे पूरा करने की जरूरत है पर निर्भर करता है, कई चीजें कर सकते हैं

  2. परीक्षण ऑब्जेक्ट के गुणों को संशोधित करें और इसे
  3. किसी अन्य ob के साथ परीक्षण बदलें जेईटी, या तो मूल या को नए परीक्षण में एकत्रित करते हुए हटा दें।

यह कस्टम कोड के साथ परीक्षण को लपेटने की कोशिश करने के लिए एक अच्छी जगह की तरह लगता है।

+0

धन्यवाद, लेकिन मैं नहीं देख सकता कि यह कैसे मदद कर सकता है। NUnit.Core.Test के सदस्यों को देखा है और कोई उचित अंक देख परीक्षा परिणाम प्राप्त करने के लिए :( – UserControl

3

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

यदि आप यूआई परीक्षण करने की कोशिश कर रहे हैं, तो मैं वेबपृष्ठ परीक्षणों के लिए Watin और WPF/Winforms ऐप परीक्षणों के लिए White की अनुशंसा करता हूं।

+1

वहाँ भी यूआई कोडित है, जो इन-द-बॉक्स VS2010 प्रीमियम/अंतिम साथ। –

+0

मैं सेलेनियम कि NUnit उत्पन्न करता है के साथ यूआई परीक्षण करना संगत सी # कोड। हालांकि मैं क्या चाहते ढांचे नास्तिक है। मैं सिर्फ परीक्षण विफलताओं को पकड़ने के लिए की जरूरत है। कोई बड़ी बात नहीं है, खासकर जब NUnit इसके लिए साधन (विस्तार अंक और TestContext) है। – UserControl