2009-06-04 5 views
48

के साथ कोड कवरेज से विधियों को बाहर निकालें क्या कोबर्टुरा कवरेज रिपोर्ट में शामिल होने से कोड को बाहर करने का कोई तरीका है? हमारे पास कुछ विधियां हैं जिन्हें कवरेज रिपोर्ट में शामिल नहीं किया जाना चाहिए और इसलिए कवरेज नंबरों को ड्राइव नहीं करना चाहिए।कोबर्टुरा

मुझे पता है कि क्लॉवर की ऐसी कार्यक्षमता है, लेकिन मुझे कोबर्टुरा के लिए कुछ भी नहीं मिला है।

+0

उम्मीद है कि यह जल्द ही आ रहा है। समस्या: http://sourceforge.net/tracker/?func=detail&atid=720017&aid=3010530&group_id=130558 और इस http://sourceforge.net/mailarchive/forum.php?thread_name=0F4966F4B6F55240A08C5F9AD979B3BE07E7EFB3%40MERCMBX16D को शामिल करने के लिए रिलीज़ के बारे में बातचीत। na.SAS.com और forum_name = cobertura-devel –

+0

देखें [यह पोस्ट] (http://stackoverflow.com/questions/8848585/excluding-java-files-in-sonar-report-through-jenkins/13003357#13003357), यह सोनार और जेनकिंस के साथ कोबर्टूरा के कोड को बाहर करने का विकल्प है, लेकिन मुझे आशा है कि इसका उत्तर गैर जेनकींस परियोजनाओं के लिए आवेदन कर सकता है –

उत्तर

52

आप उपकरण से कक्षाओं को बाहर कर सकते हैं। फिर उन्हें रिपोर्ट पर प्रकट नहीं होना चाहिए। देखें नीचे दिए गए बयान को बाहर करें।

आप कुछ तरीकों से कॉल को अनदेखा भी कर सकते हैं। देखें नीचे दिए गए कथन को अनदेखा करें।

यदि आप मेवेन का उपयोग कर रहे हैं, तो maven plugin manual देखें।

<configuration> 
     <instrumentation> 
     <ignores> 
      <ignore>com.example.boringcode.*</ignore> 
     </ignores> 
     <excludes> 
      <exclude>com/example/dullcode/**/*.class</exclude> 
      <exclude>com/example/**/*Test.class</exclude> 
     </excludes> 
     </instrumentation> 
    </configuration> 

और चींटी के लिए this देखें।

<cobertura-instrument todir="${instrumented.dir}"> 
    <ignore regex="org.apache.log4j.*" /> 
    <fileset dir="${classes.dir}"> 
    <include name="**/*.class" /> 
    <exclude name="**/*Test.class" /> 
    </fileset> 
    <fileset dir="${jars.dir}"> 
    <include name="my-simple-plugin.jar" /> 
    </fileset> 
</cobertura-instrument> 
+0

धन्यवाद। क्या कोई ऐसी चीज है जिसे किसी विधि को बाहर करने के लिए कोड में जोड़ा जा सकता है? एएनटी में एक लंबी लंबी सूची से आसान होगा। कोई एनोटेशन समर्थन? – ReneS

+0

मैंने कोबर्टुरा डॉक्स को बहुत तेज़ी से खोज की, लेकिन मुझे कोबर्टुरा की टिप्पणियों के बारे में कोई जानकारी नहीं मिली। तो ऐसा लगता है कि आपको अपनी बहिष्कृत सूचियों को कम करने के लिए अपने यूनिट-परीक्षण या पैकेज संरचना पर काम करने की आवश्यकता है;) –

+0

ठीक है, यह पुष्टि करता है कि मुझे कुछ भी याद नहीं आया है। एक छिपी हुई सुविधा के लिए आशा है ...अच्छा, शायद हम जल्दी या बाद में मिल जाएंगे। धन्यवाद! – ReneS

3

Cobertura वर्तमान में इस तरह के एक सुविधा प्रदान नहीं करता है, और न तो करता है एम्मा (जिसे हम का उपयोग करें), हालांकि यह एक आगामी वृद्धि रूप में सूचीबद्ध है - हालांकि बहिष्कार नियमों के लिए एक विस्तार के रूप में मैं के बजाय विश्वास करते हैं एक टिप्पणी के रूप में।

उन कुछ अपर्याप्त कोनों को साफ रूप से कवर करने के लिए आसान होगा ताकि आप हास्यास्पद होने के बिना 100% तक प्रयास कर सकें।

मुझे लगता है कि एनोटेशन शायद ऐसा करने का एक मित्रवत तरीका होगा, लेकिन उन्हें स्पष्ट रूप से नामित किया जाना चाहिए और स्वीकार्य परिदृश्यों की एक सूची के आधार पर मुझे डरना चाहिए क्योंकि अन्यथा '@ExcludeFromCoverage' कुछ उदारता से जोड़ा जाएगा।

+0

-1 क्योंकि यह लिखना गलत है कि "कोबर्टुरा वर्तमान में ऐसी सुविधा प्रदान नहीं करता है"। स्वीकार्य उत्तर के अनुसार यह करता है। –

+0

-1 क्योंकि यह गलत है –

+0

@ जेसन, मेरा जवाब देखें, शायद आप वही गलती कर रहे हैं जो मैं था। –

21

यह कुछ समय से मेरे सिर को तोड़ रहा है।

मेरी समस्या यह थी कि मेरे पास निर्माण खंड के बजाय रिपोर्टिंग अनुभाग में कोबर्टूर मेवेन प्लगइन सेटअप था।

उपकरण सेटिंग्स, और इसलिए कक्षाओं या पैकेजों को छोड़कर, लागू नहीं किया जाएगा यदि आप इसे बिल्ड सेक्शन पर सेट नहीं करते हैं, तो इसके लिए देखें।

+0

यह सही जवाब है! मैं इसके खिलाफ अपने सिर को टक्कर दे रहा था और इसे मेवेन 3.0.4 पोम के अनुभाग में डाल रहा था। – Melloware

+2

क्या आप एक उदाहरण प्रदान कर सकते हैं? – add9

+0

@ एड 9 चेक: http://www.mojohaus.org/cobertura-maven-plugin/usage.html – sebadagostino

17

आंतरिक कक्षाओं को भी बाहर करना याद रखें।

<exclude>path/to/class/MyClass*.class</exclude> 

मुझे नोटिस करने में उम्र लग गई कि मुझे एक तारांकन याद आ रहा था!

+0

यह सबसे उपयोगी उत्तर होने के लिए मिला! स्पष्ट रूप से काम करने के लिए डॉट से पहले स्टार आवश्यक है। धन्यवाद! – pdp