2010-09-22 13 views
7

के लिए एक रिपोर्ट मैं अपने मल्टीमॉड प्रोजेक्ट में कोड कवरेज की रिपोर्ट करने के लिए मेवेन कोबर्टूरा प्लगइन का उपयोग कर रहा हूं।मेवेन कोबर्टुरा प्लगइन - मल्टीमॉड प्रोजेक्ट

समस्या यह है कि मुझे नहीं पता कि परियोजना में सभी मॉड्यूल के लिए एक रिपोर्ट कैसे उत्पन्न करें।

अब तक मैंने प्रत्येक मॉड्यूल के लिए अलग-अलग रिपोर्ट तैयार की हैं, लेकिन पूरे प्रोजेक्ट के लिए एक रिपोर्ट होना अच्छा लगेगा।

मेरे माता-पिता पोम विन्यास:

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.4</version> 
     <inherited>true</inherited> 
     <executions> 
      <execution> 
       <phase>test-compile</phase> 
       <goals> 
        <goal>clean</goal> 
        <goal>cobertura</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 

उत्तर

2
मेरी जानकारी के लिए

, इस समय समर्थित नहीं है, MCOBERTURA-65 देखते हैं। लेकिन इस मुद्दे में एक पैच संलग्न है, शायद इसे आजमाएं। लेकिन मेरा सुझाव कुल मेट्रिक्स में Sonar जैसे कुछ का उपयोग करना होगा।

+0

अब यह समर्थित है। मेरा जवाब देखें – vegemite4me

0

मैं हडसन का निरंतर एकीकरण उपकरण के रूप में उपयोग कर रहा हूं। कोबर्टूरा प्लगइन मुझे माता-पिता की जांच करते समय सभी बाल मॉड्यूल के कोड कवरेज को देखने की अनुमति देता है।

0

जेनकींस Cobertura प्लगइन रिपोर्ट स्वचालित रूप से एकत्रित करता है, लेकिन आप कुछ अन्य कारणों से आप प्रक्रिया नीचे का पालन करके ऐसा कर सकते हैं के लिए कवरेज फ़ाइल अपने आप में रुचि रखते हैं, तो: से

  1. डाउनलोड Cobertura here

  2. अपने प्रोजेक्ट वर्कस्पेस पर जाएं -> सभी .ser फ़ाइलों को ढूंढें और उनका नाम बदलें

    (i=0; find . | grep cobertura.ser$ | while read line;do echo $line; cp -i $line cobertura$i.ser;i=$(($i+1));done;) 
    
  3. उपयोग cobertura-merge.sh वैश्विक .ser फ़ाइल

    ~/cobertura-2.0.3/cobertura-merge.sh --datafile cobertura.ser cobertura*.ser 
    
  4. उपयोग cobertura-report.sh उत्पन्न करने के लिए वैश्विक .ser फ़ाइल

    ~/cobertura-2.0.3/cobertura-report.sh ./cobertura.ser --destination ./ --format xml 
    

पर रिपोर्ट जनरेट करने के लिए आप वैश्विक coverage.xml वर्तमान निर्देशिका में उत्पन्न होगा। आप किसी भी प्रकार की प्रसंस्करण के लिए इसका उपयोग कर सकते हैं।

+0

यह केवल मेनवे का उपयोग करके कमांड लाइन के माध्यम से किया जा सकता है: 'mvn cobertura: cobertura -Dcobertura.aggregate = true -Dcobertura.report.format = xml' आप अपनी इच्छित रिपोर्ट प्रारूप को बदल सकते हैं। कोबर्टुरा मेवेन प्लगइन के जिथब रेपो के मुताबिक, यह सुविधा [v2.5] से उपलब्ध है [https://github.com/mojohaus/cobertura-maven-plugin/blob/master/src/main/java/org /codehaus/mojo/cobertura/CoberturaReportMojo.java#L126) (प्रतिबद्ध [64a8823] (https://github.com/mojohaus/cobertura-maven-plugin/commit/64a8823866b4c8be74a44383162088d616c65185#diff-e4171be1b77f9a9b331e21a0661c1433R126))। – clapsus

16

प्लगइन को अद्यतन किया गया है क्योंकि इस सवाल से पूछा गया था (और अंतिम उत्तर दिया गया) अब पेरेंट पीओएम में aggregate कॉन्फ़िगरेशन प्रॉपर्टी के माध्यम से समेकित रिपोर्टिंग सक्षम करने के लिए।

यह target/site/cobertura/index.html पर समेकित कवरेज रिपोर्ट तैयार करता है जिसमें सभी मॉड्यूल शामिल होंगे।

(प्रत्येक मॉड्यूल भी यह खुद रिपोर्ट का उत्पादन कर रहा है, कि यदि कोई उपयोग की है होगा।)

जनक pom.xml

<modules> 
    <module>moduleA</module> 
    <module>moduleB</module> 
    <module>moduleC</module> 
<modules> 
<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>cobertura-maven-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <check/> 
        <formats> 
         <format>html</format> 
         <format>xml</format> 
        </formats> 
        <aggregate>true</aggregate> 
       </configuration> 
      </plugin> 
      ... 
    </pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
... 
</build> 
+3

यह स्वीकार्य उत्तर होना चाहिए! – MKorsch

+0

क्या मुझे माता-पिता मॉड्यूल पर 'mvn cobertura: cobertura -Dcobertura.report.format = xml' commmand चलाया जाना चाहिए और यह पैरेंट मॉड्यूल में समेकित रिपोर्ट जेनरेट करेगा? – Varun

+0

मैंने भाग लिया 'mvn cobertura: cobertura -Dcobertura.report.format = xml' आदेश मूल पैकेज पर यह बाल मॉड्यूल की रिपोर्ट को जोड़ता है लेकिन यह इस मूल मॉड्यूल के बाल मेवेन मॉड्यूल में कक्षा के कवरेज को नहीं दिखाता है, अगर वह वर्ग है इस अभिभावक मॉड्यूल के विभिन्न बाल मेवेन मॉड्यूल से कक्षा द्वारा कवर किया गया। – Varun

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