2017-08-18 9 views
2

マイプロジェクトのセットアップは(githubで利用可能なすべてのソース)単純です:別のMavenのモジュールにユニットと統合テストのためのソナーで正しい報道をゲット


↳バックエンド
↳クライアント
↳統合テスト

とMavenをruningて後:

mci sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=12...9 

私はそのユニットとintegratを参照してくださいイオンテストはソナーでは見えますが、ITからのカバレッジはありません。 IntelijのIDEA jacoco-it.execについては sonar coverage sonar coverage detailed

は正常に見える: idea coverage

私は犯人はここにあると仮定しています:

[INFO] Sensor JaCoCoSensor [java] 
[INFO] No JaCoCo analysis of project coverage can be done since there is no class files. 
[INFO] Sensor JaCoCoSensor [java] (done) | time=1ms 

だから私は小さなhack(短期でやった:コピーされたすべてのソースファイルをintegration-testモジュール):

<properties> 
     <sonar.sources>${basedir}/target/copied</sonar.sources> 
    </properties> 
    [...] 
     <!-- hack to generate coverage reports --> 
     <plugin> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>${maven-resources-plugin.version}</version> 
      <executions> 
       <execution> 
        <id>copy-resources</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${sonar.sources}</outputDirectory> 
         <resources> 
          <resource> 
           <directory>${basedir}/../backend/src/main/java</directory> 
           <filtering>false</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>add-source</goal> 
        </goals> 
        <configuration> 
         <sources> 
          <source>${sonar.sources}</source> 
         </sources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

しかし、今、すべての私のクラスは、(ソナーが../target/copiedディレクトリからもクラスを示して)重複エール: sonar coverage duplicated

ソナーバージョン:6.5
JacocoのMavenプラグイン:0.7.5.201505241946(も最新の0.7.9を試してみました)

ここで何をすべきですか?

答えて

1

私はその質問のための答えを持っているように見える:post-unit-test実行が間違っ相中であったため

  1. レポートが生成されませんでした。 <phase>test</phase>の代わりに<phase>verify</phase>

  2. 私はpost-integration-testの間違った目標を持っていました。変更は<goal>report-integration</goal>から<goal>report-aggregate</goal>にした:

    • This goalは、テストは、テスト対象のコードとは別のプロジェクトにあるとき私は、カバレッジレポートを作成することができます。
  3. 追加されたプロパティ: <jacoco.itReportPath>${project.basedir}/../integrations-tests/target/jacoco-it.exec</jacoco.itReportPath><sonar.jacoco.reportPaths>${jacoco.itReportPath},${project.build.directory}/jacoco-it.exec,${project.build.directory}/jacoco.exec</sonar.jacoco.reportPaths>

github

-1

私はカバレッジのために主にジャココを使用します。あなたは

  1. を開始する前に、所定の位置にいくつかのことを持っている必要があり、それはあなたが構築し、忘れてしまう1時間の設定です

プラグインjacocoを有効に設定し

  • 確実なプラグインを有効にし、設定します親として働く私のプロジェクトの1つがこの機能を有効にします。それをチェックアウトしてお気軽に: https://github.com/slixes/parent/blob/master/pom.xml

  • +0

    で利用できるすべてのものをchagesと更新プロジェクトはい、私はこれらのプラグインを設定しています。 SurefireはUTを実行し、maven-failsafe-pluginはITテストを実行します。 jacocoの設定(前/後のユニットテストと前/後の統合テスト)。私はそれを読むことができないようにしたくないので、質問にコピーされていません。 – Pawel

    関連する問題