2016-09-22 11 views
6

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

मैंने बिल्ड टैग के भीतर अपने मूल pom.xml में निम्नलिखित जोड़ा।

 <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.8-SNAPSHOT</version> 
      <configuration> 
       <output>file</output> 
       <append>true</append> 
      </configuration> 
      <executions> 
       <execution> 
        <id>jacoco-initialize</id> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>jacoco-site</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
      <configuration> 
       <argLine>${argLine}</argLine> 
      </configuration> 
     </plugin> 

चल mvn, संबंधित jacoco रिपोर्ट पर प्रत्येक मॉड्यूल के लिए उत्पन्न किया गया सत्यापित करें पर "परियोजना जड़ \ मॉड्यूल \ लक्ष्य \ साइट \ jacoco \" यह संभव एक उत्पन्न करने के लिए

है प्रत्येक मॉड्यूल के परीक्षण कवरेज विवरण वाले परियोजना-रूट पर समेकित जैकोको रिपोर्ट?

कृपया व्यक्तिगत मॉड्यूल रिपोर्टों को मर्ज करने का सबसे अच्छा तरीका सुझाएं।

उत्तर

5

निश्चित है!

मुझे इस पैटर्न को पकाने के लिए थोड़ी देर और कुछ स्रोतों को ले लिया, लेकिन अच्छी तरह से काम किया है।

एक बहु मॉड्यूल Maven परियोजना के लिए:

ROOT 
|--LIB-1 
|--LIB-2 

LIB परियोजनाओं दोनों का अपना इकाई परीक्षण किया है।

ROOT pom.xml

<!- properties--> 
<jacoco.reportPath>${project.basedir}/../target/jacoco.exec</jacoco.reportPath> 

<!-- build/plugins (not build/pluginManagement/plugins!) --> 
<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.6.201602180812</version> 
    <executions> 
     <execution> 
      <id>agent-for-ut</id> 
      <goals> 
       <goal>prepare-agent</goal> 
      </goals> 
      <configuration> 
       <append>true</append> 
       <destFile>${jacoco.reportPath}</destFile> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

LIB परियोजनाओं pom.xml JaCoCo प्लगइन्स निष्पादन प्राप्त कर लेंगे, तो बस अचूक प्लगइन में argline ऊपर तार की जरूरत है।

<plugin> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.18.1</version> 
    <configuration> 
     <argLine>${argLine}</argLine> 
    </configuration> 
</plugin> 

मैं JaCoCo के लिए एकीकरण परीक्षण के साथ ही इकाई परीक्षण अप रोलिंग के लिए एक विस्तारित जवाब सोनार के माध्यम से रिपोर्ट की जा रही है, तो आप my detailed answer here देख सकते हैं।

+0

धन्यवाद .... मैंने आपके विस्तृत उत्तर में उल्लिखित चरणों का पालन किया .. आखिरकार यह काम किया :) – John

0

markdsievers विस्तृत जवाब में सुझाए गए चरणों के अलावा, मैं सेटअप करने के लिए किया था sonarqube-5.3 (JDK का समर्थन करता है 7+) स्थानीय होस्ट में: 9000

Setup SonarQube

और का उपयोग mvn पैकेज jacoco उत्पन्न करने के लिए .exec फ़ाइलें। फिर एमवीएन सोनार: सोनार सोनार डैशबोर्ड में रिपोर्ट जेनरेट करने के लिए।

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