16

Sonar と Jenkins でコード カバレッジを取得しようとしています。Jenkins の Sonar プラグインが JUnit テスト ケースを正常に実行し、ビルドを正常に完了していることがわかります。ただし、ソナーはプロジェクトのコード カバレッジの結果を表示しません (コード カバレッジとして常に 0.0% を表示します)。しかし、ソナーは「単体テストの成功」を示しています。

Jenkins と Sonar で Maven を使用しています。

Sonar プラグインの実行中に、Jenkins ログに次のメッセージが表示されます。

JaCoCo 実行データがダンプされていないため、プロジェクト カバレッジは 0% に設定されます: .../sonar/target/jacoco.exec

ソナープロジェクトで正しいコードカバレッジを取得する方法を教えてください。

4

5 に答える 5

3

https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Projectを読み、コード カバレッジ プラグインとして cobertura を使用すると、小さなプロジェクトのコード カバレッジが表示されます。ソナーで大きなプロジェクトをチェックすると、コードカバレッジが空であることを意味します。ログを見ると、Cobertura レポートが /.../coverage.xml パスに見つからないことがわかりました。

OutOfMemeryError:heapspace のため、coverage.xml が生成されませんでした。私のプロジェクトは非常に大きなプロジェクトなので、ヒープ メモリを 2GB に設定し、cobertura プラグイン メモリを 1.5GB に設定すると、ソナーにコード カバレッジが表示されます。

于 2013-09-12T06:53:27.457 に答える
0

ソナーを実行するために Jenkins ソナー プラグインを使用する代わりに、ソナー ゴールを実行することにより、Maven で実行してみてください。通常、これは追加のビルドステップを設定し、ソナーがすべての関連ファイルを見つけるまですべてのパスを微調整するよりも簡単です。

あなたの場合、junit/testng レポートを読み取ることはできると思いますが、jacoco の結果 (jacoco.exec) を見つけることができません。パス ソナー出力 ( ../sonar/target/jacoco.exec) は正しいですか?

于 2013-08-27T06:12:25.930 に答える