6

Jenkinsジョブの構成は次のとおりです。最初にMavenプロジェクトをクリーンアップしてビルドし、次に単体テストと静的分析を実行しますclean install sonar:sonar 。問題はinstallsonar:sonarそれぞれが単体テストを実行したため、ビルド時間が実質的に2倍になったということです。

Jenkinsソナープラグインを使用してSonarに変更clean install sonar:sonarして実行することで、これを修正しました。clean install -DskipTests現在、ユニットテストは1回だけ実行され、ソナーは結果を示しましたが、ジェンキンスはテストについてもう知りませんでした。

私の推測では、Jenkinsは、Sonar(ビルド後のアクション)の後ではなく、ビルド後にsurefire-reportsフォルダーのみを確認しています。

4

2 に答える 2

11

clean install -DskipTests最初に実行してから、2 番目の Maven ビルド ステップを追加することができますsonar:sonar。テスト (および完全なソナー分析) はビルド段階で実行され、その後、ジェンキンスによって確実な結果を収集できます。

于 2011-09-20T15:41:56.377 に答える
2

あなたが言ったように、ソナーはコンパイル後のステップです。Sonar を実行するには、ビルドが完了し、すべてのテストに合格する必要があります。そうでなければ、実行することは意味がありません。

Sonar はインストルメンテーション (私の記憶が正しければ cobertura) を使用してテストを実行し、テストのコード カバレッジを提供します。

そのため、Sonar を実行する前にインストール (または少なくともコンパイルとテスト) を行う必要があります。その後、Sonar は独自の目的でインストルメントを使用してテストを再実行します。

于 2011-09-20T14:37:16.557 に答える