2

JaCoCo エージェントを使用して"-javaagent..."、Jetty に追加し、外部 Selenium テスト (または手動テストなど) を実行して、Web サイトの FT コード カバレッジを収集しようとしています。

テストの最後に、実際にJettyで実行されたweb-moduleの結果のみが得られましたが、web-moduleで使用されている(同じプロジェクト内の)「コア」モジュールの結果はありません。では、プロジェクトのすべてのモジュールの呼び出しを収集する機能はありますか?

実際、私はすべてのプロジェクト Web サービス (5 つある) を同じ JaCoCo レポートの宛先 (つまり/tmp/jacoco-res.exec) で開始しようとしappend=true、実行しました:

mvn sonar:sonar -Dsonar.jacoco.itReportPath=/tmp/jacoco-res.exec

そのため、ソナーはプロジェクト内のすべてのモジュールに同じJaCoCo レポート ファイルを使用するようになり、ソナーは jetty-run モジュールとコア モジュールの両方のテスト カバレッジを示します。

このアプローチは適用可能で、カバレッジ結果は正しいですか?

4

1 に答える 1

2

数日前にSonar ユーザー フォーラムで同様の質問をしました。

要するに、あなたのアプローチは正しく、Sonar コンサルタントによって提案されたものでもあります (投稿で確認できます)。

  • 各 Maven プロジェクトでソナー分析を実行します。
  • 分析ごとにレポートを再利用し、JaCoCo レポートを渡します (-Dsonar.jacoco.itReportPath を使用)。
  • Sonar は、この JaCoCo レポートから、分析中の Maven プロジェクトに関連するカバレッジ データを取得します。(コア プロジェクトの 1 つ)
  • したがって、Maven プロジェクトごとに、統合テストによるカバレッジが得られます。
  • 最後に、統合テストで Web サービスのカバレッジを取得するには、Views プラグインを使用する必要があります: http://www.sonarsource.com/products/plugins/governance/portfolio-management/
  • Web サービスを構成するすべての Maven プロジェクトを集約したビューを作成します。
  • Sonar がビューを計算するために、その Maven プロジェクトの 1 つの Sonar 分析を実行します。
  • ビュー ダッシュボードでは、統合テストによって Web サービスのコード カバレッジを取得できます。
于 2013-01-03T09:18:47.433 に答える