2011-09-20 13 views
6

私はジェンキンスジョブの次のような構成だった: まず清潔にし、単体テストと静的解析を実行し、Mavenプロジェクトをビルドする:clean install sonar:sonar 問題はinstallsonar:sonarそれぞれが効果的にビルド時間を倍増ユニットテストを実行したということでした。"maven clean install"とSonarを実行しているときに単体テストを実行するには?

clean install sonar:sonarclean install -DskipTestsに変更し、Jenkinsソナープラグインを使用してSonarを実行するように修正しました。今度は単体テストが1回だけ実行され、ソナーが結果を示したが、ジェンキンスはもうテストについて知らなかった。

私の推測では、ジェンキンスはビルド後のsurefire-reportsフォルダを見ているに過ぎません。ポストビルドアクションであるSonarの後ではありません。

答えて

11

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

2

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

ソナーは、私が正しく覚えていれば計測器でテストを実行します。これはテストのコードカバレッジを与えます。

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

関連する問題