2016-07-07 11 views
7

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

ठीक प्रत्येक इकाई परीक्षण विधि के लिए निम्न विशेषता जोड़ने के लिए है: [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]

हालांकि, उस बोझिल है और clutters कई इकाई परीक्षण के साथ एक वर्ग।

मैं कोशिश की है:

#pragma warning disable CA1822

#pragma warning restore CA1822

इन दोनों में से न तो में वर्ग

  • तरीकों के सभी रैपिंग के लिए विशेषता चलती दृष्टिकोण काम किया है।

    public class TestClass 
    { 
        public TestClass() 
        { 
         // some setup here 
        } 
    
        [Fact] 
        public void My_Unit_Test1() 
        { 
         // the 'this' parameter is never used, causes CA warning 1822 
        } 
    
        [Fact] 
        public void My_Unit_Test2() 
        { 
         // the 'this' parameter is never used, causes CA warning 1822 
        } 
    } 
    

    VS2015 अद्यतन 2 का उपयोग करना, 4.61 नेट, और नए कोड विश्लेषण एनालाइजर।

  • +0

    मैं यूनिट टेस्ट परियोजनाओं के लिए एक अलग कोड विश्लेषण नियम-सेट का उपयोग करके यह (और अन्य) मुद्दों को संबोधित किया। मैंने उन नियमों को बंद कर दिया जो यूनिट टेस्ट परियोजनाओं पर लागू नहीं हुए थे। –

    +0

    @ मैथ्यू वाटसन - मैं परीक्षण परियोजनाओं के लिए एक अलग नियम का भी उपयोग करता हूं। इस मामले में, मैं चाहता हूं कि नियम मेरी इकाई परीक्षण परियोजना पर लागू हो, केवल एक विशिष्ट वर्ग नहीं। – SFun28

    +0

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

    उत्तर

    3

    यह वही नहीं है जो आप चाहते हैं लेकिन आपके पास की स्थिति से कम बुरा हो सकता है।

    आप निम्न विशेषता के साथ एक विशेष वर्ग की अनदेखी करने के कोड विश्लेषण बता सकते हैं: "(केवल प्रबंधित) तैयार किए गए कोड से परिणाम को रोकें"

    [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] 
    

    ध्यान रखें कि आपके परियोजना दृश्य स्टूडियो विकल्प की जरूरत है की जाँच की।

    परेशान करते समय, आप अभी भी फ़ाइल पर कोड विश्लेषण चलाने का विकल्प चुन सकते हैं यदि आप अस्थायी रूप से विशेषता पर टिप्पणी करते हैं।

    +0

    'बहिष्कृत करेंप्रोडकोड कवर' निर्दिष्ट करता है कि जिम्मेदार कोड ** कोड कवरेज जानकारी ** से बाहर रखा जाना चाहिए; कोड विश्लेषण से नहीं।एमएसडीएन दस्तावेज देखें (https://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute(v=vs.110).aspx) –

    0

    त्रुटि सूची टैब के नीचे त्रुटि पर राइट क्लिक करें, और आप 'स्रोत में' और 'दमन फ़ाइल' में चुन सकते हैं।

    अगर आप 'स्रोत में' चुनते हैं तो SuppressMessageAttibute स्रोत कोड (विधि या कक्षा स्तर) में जोड़ा जाएगा।

    '[असेंबली: SUppressMessage' GlobalSupressions.cs फ़ाइल में जोड़ा जाएगा, और आप विशेषता के 'लक्ष्य' को कॉन्फ़िगर कर सकते हैं।

    snapshot here

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