2017-08-21 9 views
1

私はMavenプロジェクトを作成し、確実なレポートと確実なJacocoレポートを作成しました。 jacoco.execも生成され、コンパイルされたクラスのサーバーにプロジェクトをアップロードすると、コードカバレッジが表示されますが、クラスファイルを省略した場合のベストプラクティスとして、コードカバレッジが表示されません。誰かが私を助けてくれますか? 問題を簡単に理解するのに役立つ次のスクリーンショットを参照できます。 私は、サーバー上の私のコンパイル済みのクラスファイルをアップロードした場合、それは enter image description hereソナーコードカバレッジはクラスファイルのないサーバーには反映されません

、以下のように正常に動作します。しかしそのため、私はこれを取得するので、それは、ベストプラクティスではないように私は私の遵守クラスファイルをアップロードする必要はありません結果、 enter image description here

+0

** jacoco **のようなツールは、通常、クラスファイルが必要です。確かに、クラスファイルをサーバに保存する必要はありません(BTWクラス - ファイルはWAR、EAR、JARにパッケージ化する必要があります)。カバレッジ分析を別のMavenの目標に移動するだけです。テスト後、デプロイメント前に実行します([JaCoCo Mavenプラグインによるユニットテストと統合テストのコードカバレッジレポートの作成](https://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports) jacoco-maven-plugin /)の記事を参照してください。 – flaz14

答えて

3

SonarQubeとJaCoCoは解析時にのみクラスファイルを必要としますが、その後はどこにも保存しません。クラスファイルがなければ、SonarQubeは何らかの結果(部分的または間違っている)を生成することがありますが、JaCoCoは絶対にクラスファイルを必要とせず、必要とします。

また、UIのSonarQubeとSonarQubeのないネイティブレポートのJaCoCoの両方がソースコードを表示することに注意してください。したがって、ソースコードをアップロードしてもクラスはアップロードしたくないというのは奇妙ですが、これは分析の後にアップロード/使用されないという別の話です。

+1

迅速な対応をありがとう。 私のjacocoにテストケースのレポートがある場合、なぜクラスファイルがテストケースの分析に再び必要とされたのですか? jacoco.execからレポートを取得できますか? sonar.java.binariesをsonar.propertiesファイルに含めることは必須ですか? –

+0

@DeepakKumbhar私はあなたが「テストケースを分析するために再びクラスファイルが必要な理由」を理解していますが、JaCoCoでテストを実行すると実行情報のみを含む 'jacoco.exec'が得られます。クラスファイルと組み合わせて、コードカバレッジに関するhtmlおよびxml JaCoCoネイティブレポートを作成します。 SonarQubeはそのようなhtml/xmlレポートをインポートするのではなく、jacoco.execを取り込み、クラスファイルと組み合わせて独自のレポートを作成します。また、SonarQubeはバグを見つけるためにクラスファイル分析を行います。 – Godin

+0

ありがとう... sonar.java.binaries = <クラスファイルのパス>をインポートしているので、sonar.properties構成ファイルを送ってもらえますか。 –

関連する問題