2010-03-10 37 views

उत्तर

0

बिल्ड निर्माण के साथ ऐसा करने का एक तरीका है (विशेष रूप से यदि आप अपना खुद का रोल करना चाहते हैं)। उम्मीद है कि कोई आपके लिए कुछ नमूना कोड पोस्ट करेगा।

यदि नहीं, तो मैं इस प्रकार के कार्य के लिए NDepend से प्रभावित हुआ हूं। आप अपने कोड के बारे में सभी प्रकार के मीट्रिक निर्धारित करने के लिए एक बहुत ही आत्म-स्पष्टीकरण, एसक्यूएल-जैसे सिंटैक्स में लिख सकते हैं और थ्रेसहोल्ड के आधार पर निर्माण को विफल या विफल कर सकते हैं।

उदाहरण:

WARN IF Count > 0 IN SELECT METHODS WHERE CodeWasChanged AND PercentageCoverage < 95 
WARN IF Count > 0 IN SELECT METHODS WHERE IsPublic AND IsInOlderBuild AND WasRemoved 
2

मुख्य मुद्दा यह है कि कोड कवरेज परिणाम फ़ाइल कि MSTest का उत्पादन एक द्विपदीय प्रारूप में है।

http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip

नोट:: हालांकि, यह सोचते हैं कि चीजों VS2010 में बहुत ज्यादा नहीं बदला है, आप इस सुविधा का उपयोग करने के लिए यह एक XML फ़ाइल में परिवर्तित करने में सक्षम होना चाहिए आप शायद के खिलाफ यह पुन: संयोजित करने की आवश्यकता होगी 'माइक्रोसॉफ्ट। VisualStudio.Coverage.Analysis.dll का VS2010 संस्करण।

फिर आप एक्सएमएल फ़ाइल को पार्स करने की अपनी पसंदीदा विधि का उपयोग कर सकते हैं, एक समग्र कवरेज अनुपात की गणना करने के लिए प्रत्येक वाद्य यंत्रों के लिए गणित कर सकते हैं। XPaths आप में (कम से कम VS2008 के लिए) रुचि रखते हैं कर रहे हैं:

/CoverageDSPriv/Module/LinesCovered 
/CoverageDSPriv/Module/LinesNotCovered 

आप शुद्ध MSBuild में है कि अंतिम चरण क्या करना चाहते हैं, तो 'XmlRead' और 'गणित' कार्य MSBuild सामुदायिक कार्य के भीतर निहित पुस्तकालय पर्याप्त होना चाहिए:

http://msbuildtasks.tigris.org/

बार जब आप एक MSBuild संपत्ति में समग्र अनुपात है, तो आप तो बस एक सशर्त कार्य निर्माण को तोड़ने के लिए है, तो उस नंबर अपने वांछित सीमा से कम है का उपयोग करें।

<Error Condition=" $(CodeCoverageRatio) &lt; $(MinCodeCoverage) " 
     Text="Code Coverage is below required threshold." /> 
0

प्राचीन प्रश्न, लेकिन उत्तर के रूप में चिह्नित नहीं है। this

पर एक नज़र डालें