2009-08-13 14 views
8

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

उत्तर

3

एनयूनीट 2.4.6 से शुरू होने पर, एनयूनीट गुणों को बंद नहीं किया गया है और उप-वर्गों को उनके मूल वर्ग के रूप में पहचाना जाएगा। इस प्रकार:

nunit-सांत्वना/शामिल =

5

क्या फ़िल्टरों को आपकी कस्टम विशेषता का उपयोग करने की आवश्यकता है, या आप एक NUnit Category का उपयोग कर सकते हैं?

nunit-console /include=BugId-12234 ... 

: कुछ

[Test] 
[Category("BugId-12234")] 
public void Test() 
{ 
    .... 
} 

... और फिर जैसे /include=STR ध्वज का उपयोग करें? मैं आपकी कस्टम विशेषता बनाने के लिए उप-वर्ग श्रेणी की अनुशंसा करता हूं, लेकिन मुझे नहीं लगता कि आपको अपनी विशेषता में एक स्विच करने योग्य पैरामीटर जोड़ने की अनुमति मिलती है ...

+0

NUnit कोड को देखने के बाद "# 1 बग के लिए टेस्ट", मुझे लगता है कि यह है:

public class BugId : TestAttribute { public BugId(int bugNumber) : base("Test for Bug #" + bugNumber) { } } [BugId(1)] public void Test() {} 

इस तरह कमांड लाइन पर कहा जा सकता है सबसे अच्छा हम NUnit को संशोधित किए बिना कर सकते हैं। आपके उत्तर के लिए धन्यवाद। –

0

मैंने सोचा कि मेरे पास इसका एक शानदार समाधान था, लेकिन हां, जैसा कि मैंने उम्मीद की थी काम नहीं करते। मैं इग्नोरएट्रिब्यूट क्लास से प्राप्त करने के लिए उम्मीद कर रहा था (और शायद आप अधिक प्रयास कर सकते हैं)। मैंने सोचा कि यह काम करेगा:

[Test, BugId("411")] 
public void TestMethod() 
{ 
    // your test 
} 

public class BugIdAttribute : IgnoreAttribute 
{ 
    private string id; 

    public BugIdAttribute(string id) : base("Ignored because it is bug #" + id) 
    { 
     this.id = id; 
    } 
} 

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

+0

मैं परीक्षण को अनदेखा नहीं करना चाहता हूं। मैं यह देखने में सक्षम होना चाहता हूं कि बग को ठीक किया गया है और उस बग के साथ सभी संबंधित परीक्षण चलाएं। –

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