2016-09-22 29 views
6

私が作業していたマルチモジュールプロジェクトのために、mavenのjacocoプラグインを使用してコードカバレッジレポートを生成しようとしていました。マルチモジュールプロジェクト用のMaven Jacoco設定

ビルドタグ内の親のpom.xmlに次を追加しました。 、それぞれのjacocoレポートは「プロジェクトルート\モジュール\ターゲット\サイト\のjacocoの\」で、モジュールごとに生成されたMVNを確認し実行するには

 <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> 

を生成することが可能です各モジュールのテストカバレッジの詳細を含むプロジェクトルートでの統合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ので、ちょうどシュアプラグインでarglineを配線する必要がある、JaCoCoプラグインの実行を継承します。

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

私はあなたがmy detailed answer hereを見ることができる、統合テストだけでなく、ソナーを経由して報告されているJaCoCoのためのユニットテストをロールアップするための拡張された答えを持っています。 markdsievers詳細な回答で提案されている手順に加えて

+0

ありがとうございました....あなたの詳細な回答に記載されている手順に従っています。 – John

0

は、私がセットアップしなければならなかったsonarqube-5.3(JDKをサポートしています7+)はlocalhostで:9000

Setup SonarQube

と使用MVNパッケージ jacocoを生成します.execファイル。 次にmvnソナー:ソナーソナーダッシュボードでレポートを生成する。

関連する問題