2010-02-08 10 views
6

मैं NUnit XML आउटपुट पर अभी देख रहा हूँ, और आश्चर्य है कि अगर यह विफलताओं केवल के लिए उत्पादन उत्पन्न करने के लिए संभव है है।इसे अनुकूलित संभव करने के लिए NUnit एक्सएमएल आउटपुट

मेरा मतलब है, अगर कोई परीक्षण ठीक हो जाता है, तो इसके लिए कोई एक्सएमएल आउटपुट उत्पन्न नहीं होता है।

(अद्यतन: XSLT यहाँ एक विकल्प नहीं है मैं सब में पारित परीक्षण के लिए XML आउटपुट नहीं चाहता:। अगर मैं पारित कर दिया परीक्षण के बारे में विवरण की जरूरत नहीं है, मैं नहीं करना चाहता सिस्टम उन विवरणों को उत्पन्न करने में समय बिताने के लिए सिस्टम।)

विचार यह है कि यदि आपके पास बहुत सारे परीक्षण हैं, तो एक्सएमएल आउटपुट काफी बड़ा होता है, लेकिन 80% बार आप असफलताओं के बाद भी होते हैं। ऐसे मामलों के लिए, मैं अपने परीक्षणों को इस तरह से चलाने के लिए चाहता हूं कि विफलताओं पर केवल जानकारी उत्पन्न हो।

nunit-console /transform:failures.xslt nunit.tests.dll 

डिफ़ॉल्ट एक्सएमएल फ़ाइल का उपयोग कर से जेनरेट किए है जो आसानी से केवल विफलताओं रिपोर्ट करने के लिए संशोधित किया जा सकता this XSLT फ़ाइल:

उत्तर

1

इस सवाल को न्यूटिट Google समूह, और चार्ली पोल confirmed पर पोस्ट किया गया है कि ऐसा कोई विकल्प नहीं है।

4

जब आप चलाने NUnit console runner उत्पन्न फ़ाइल अनुकूलित करने के लिए एक XSLT फ़ाइल निर्दिष्ट कर सकते हैं।

+0

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

+0

धन्यवाद कीथ - हम फ़ाइल के प्रारूप को नियंत्रित करने के लिए एक रास्ता तलाश रहे हैं और आपका उत्तर वही है जो हमें चाहिए :-) –

0

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

/// <summary> 
/// Test finished. 
/// </summary> 
/// <param name="result">The result.</param> 
public void TestFinished(TestResult result) 
{ 
    if (!result.IsFailure) 
    {    
     result.WriteResultEntry = false; 
    } 
} 

तो ऐसी कोई संपत्ति WriteResultEntry है, चार्ली इसे लागू या केवल उत्पादन लेखन जब result.IsFailure सच है द्वारा अपने स्वयं के परिणाम रिपोर्ट बनाने के लिए पूछना।

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