2011-09-12 31 views
10

मेरे पास एक सेटअप है जहां विजुअल स्टूडियो 2010 परीक्षण कवरेज विश्लेषण चलाता है और इसके उत्पादन को एकीकरण निर्माण के दौरान एनडेंड द्वारा अवशोषित किया जाता है।क्या एनएसओपेन्स विश्लेषण से पूरे नामस्थानों को बाहर करना संभव है?

कुछ असेंबली में जेनरेट कोड होता है जिसे एनडीपेन्स द्वारा अनदेखा करने की आवश्यकता होती है।
क्या ऐसा करने का कोई तरीका है? अधिमानतः एक संपूर्ण नामस्थान।

उत्तर

4

Code Query and Rule over LINQ (CQLinq) वास्तव में को एक सुविधा प्रदान करता है जो उत्पन्न कोड को अनदेखा करता है।

नामक सुविधाजनक पूर्वनिर्धारित डोमेन है ICodeBaseView प्रकार के JustMyCode

डोमेन JustMyCode CQLinq क्वेरी परिणामों से उत्पन्न कोड तत्वों को समाप्त करने के लिए CQLinq की सुविधा का प्रतिनिधित्व करता है। उदाहरण के लिए निम्न क्वेरी केवल बड़े तरीकों कि (क यूआई डिजाइनर की तरह) एक उपकरण के द्वारा उत्पन्न नहीं कर रहे हैं मिलान हो जाएगा:

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m 

उत्पन्न कोड तत्वों के सेट CQLinq कीवर्ड notmycode साथ उपसर्ग CQLinq प्रश्नों द्वारा परिभाषित किया गया । उदाहरण के लिए क्वेरी के नीचे स्रोत फ़ाइलें जिसका नाम ".designer.cs" के साथ समाप्त होता है में परिभाषित तरीकों से मेल खाता है:

notmycode from m in Methods where 
    m.SourceFileDeclAvailable && 
    m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs") 
select m 

CQLinq प्रश्नों धावक JustMyCodeपर निर्भर प्रश्नों से पहले प्रश्नों सभी notmycode कार्यान्वित करता है, इसलिए डोमेन JustMyCode सभी के लिए एक बार परिभाषित किया गया है। स्पष्ट रूप से CQLinq संकलक एक त्रुटि को छोड़ देता है यदि नोटमीकोड क्वेरी JustMyCode डोमेन पर निर्भर करती है।

4 डिफ़ॉल्ट नोटमीकोड प्रश्न हैं, जो आपकी आवश्यकता से मेल खाने के लिए आसानी से अनुकूलनीय हैं।

+0

पैट्रिक, क्या आप इस पर विस्तृत जानकारी दे सकते हैं और वर्णन कर सकते हैं कि किसी परियोजना के लिए मीट्रिक उत्पन्न करने के लिए उपयोग किए गए सभी सीक्यूएल प्रश्नों को संशोधित करने के बारे में कोई कैसे होगा? मैं प्रोजेक्ट फ़ाइल में एम्बेडेड एन्कोडेड प्रश्न देख सकता हूं, लेकिन मेरे जीवन के लिए, मुझे नहीं पता कि मैं उन्हें यूआई में कहां संशोधित करूंगा! – rbellamy

+0

बस विजुअलेंडेंड पर शुरू करें।exe, अपने एनडॉन्पेन्स प्रोजेक्ट का विश्लेषण करें या अपने एनडीपेन्स प्रोजेक्ट का सबसे हालिया विश्लेषण परिणाम लोड करें, फिर पैनल "सीक्यूएल क्वेरी एक्सप्लोरर" देखें, यह वह जगह है जहां आप प्रश्नों और नियमों को ब्राउज़ कर सकते हैं और उन्हें संपादित कर सकते हैं। –

+0

मैं एक ही समय में सभी प्रश्नों को बदलने की क्षमता का जिक्र कर रहा हूं। केस का उपयोग करें - "सीक्यूएल क्वेरी संपादन" विकल्पों में प्रदान की गई "क्लिपबोर्ड डिफ़ॉल्ट सीक्यूएल क्वेरीज़ में कॉपी करें" का उपयोग करके सभी प्रश्नों की प्रतिलिपि बनाएँ। फिर, पसंद के रेगेक्स टूल का उपयोग करके, किसी विशेष नामस्थान को अनदेखा करने के लिए सभी प्रश्नों को संशोधित करें, या एनडीपेन्ड [जेनरेटेड] विशेषता का सम्मान करने के लिए, या जो भी वैश्विक परिवर्तन आप सीक्यूएल कथन के मानदंडों को बनाना चाहते हैं। अब, मैं इन अद्यतन/संशोधित प्रश्नों के साथ एनडीपेन्स प्रोजेक्ट के लिए डिफ़ॉल्ट क्वेरी को आसानी से कैसे बदलूं? – rbellamy

1

: नोट वहाँ नामस्थान के लिए प्रश्नों है कि कोई डिफ़ॉल्ट notmycode लेकिन आप अपने खुद के एक (रों) बना सकते हैं इसे "रीफैक्टो करने के तरीकों के त्वरित सारांश" में मिला r "

// Here are some ways to avoid taking account of generated methods. 
!(NameIs "InitializeComponent()" OR 
    // NDepend.CQL.GeneratedAttribute is defined in 
    // the redistributable assembly $NDependInstallDir$\Lib\NDepend.CQL.dll 
    // You can define your own attribute to mark "Generated". 
    HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute") 

लेकिन वह सुनिश्चित करने के लिए वे सब उत्पन्न कोड की अनदेखी हर CQL क्वेरी में संशोधन की जरुरत को संबोधित नहीं करता।

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