4

私は静的分析ツールを精査してきましたが、最近、Atlassian Clover と SonarQube の両方に出会いました。この 2 つの製品は、サーバーの観点からは非常に似ており、事実上同一のように見えますが、オンラインで適切な比較を見つけることができません。

彼らの IntelliJ プラグインも精査してきましたが、この 2 つのプラグインには大きな違いがあります。Clover の IDE 統合は素晴らしく、単体テストでカバーされていないコード行を正確に指摘しています。ただし、SonarQubeサーバーにはこの機能がありますが、Clover の 1 人あたり 300 ドルの費用がこの IDE の利便性に見合うかどうかはわかりません。

Sonar のプラグインは単に IDE のコードの問題を指摘しているように見えますが、これは良いことですが、IntelliJ には既にこの機能があります。また、Clover のプラグインにこれ​​が欠けているのでしょうか、それとも Clover プラグインをサーバーの前にまだ置いていないために単に表示されないのでしょうか?

最後に、Sonar が Clover によって生成されたレポートを使用できることも確認しました。誰もこれについて経験がありますか?これらのレポートを利用して、SonarQube サーバーは Clover サーバーを十分に置き換えますか? そうでない場合、ソナーに欠けているものは何ですか?

参考:http ://docs.codehaus.org/display/SONAR/Clover+Plugin

背景: 分析されている製品は、Maven でビルドされている Java Web プロジェクトです。どちらのツールも適切な Maven 統合を備えているようです。

4

1 に答える 1

10

免責事項: 私は Atlassian の Clover 開発者です。

もちろん、できるだけ客観的になるように努めます。

最初に、Clover と Sonar の違いを 1 つ強調します。

  • Clover は主にコード カバレッジ ツールです。総カバレッジとテストごとのカバレッジの両方を追跡します。これに加えていくつかのコード メトリクスがありますが、Checkstyle、FindBugs、PMD などの典型的な静的コード分析ツールではありません。

  • Sonar (私の見解では) は主にデータ集約ツールであり、さまざまなツールからさまざまな種類のデータ (コード カバレッジ、静的分析結果、コード メトリックなど) を収集し、それらを 1 か所に表示できます。

これら 2 つのツールの類似点は、どちらも豊富なレポートを作成できることです。

そうは言っても、あなたの質問に答えさせてください。

Clover の IDE 統合は驚くべきものであり、単体テストでカバーされていないコード行を正確に指摘しています [...] が、Clover の 1 人あたり 300 ドルの費用がこの IDE の利便性に値するかどうかはわかりません。

自分で答えなければなりません:-) 考慮に値するいくつかのこと:

  • 開発者は単体テストをどのように実行しますか? コミットする前に IDE で実行しますか? 「グリーンビルド」ポリシーはありますか? 両方の答えが「はい」の場合、Clover を IDEA に含める価値があるかもしれません。

  • IDE での単体テストの実行にはどのくらいの時間がかかりますか? それらはどのくらいの頻度で起動されますか? 時間がかかり、頻繁に起動される場合は、IDEA でClover のテスト最適化機能を使用すると面白いかもしれません。

  • テストを複数のビルド プランに分割して CI サーバーで実行していますか? 特定の環境構成で実行していますか? そのような場合、サーバー レポートは IDE よりも価値がある可能性があります。

  • 開発者は、コード カバレッジを IDE で直接確認することを好みますか?それとも、ブラウザーで HTML レポートをクリックすることを好みますか?

  • IDE でカバレッジが強調表示されたソース コードを使用することで、チームの生産性が向上することを期待していますか? いくら?「節約時間×給料>クローバーライセンス価格」ですか?

Sonar のプラグインは単に IDE のコードの問題を指摘しているように見えますが、これは良いことですが、IntelliJ には既にこの機能があります。また、Clover のプラグインにはこれがありませんか [...]?

Clover は静的解析を実行しないため、コードのバグは表示されません。HTML レポートにも IDE プラグイン (IDEA/Eclipse) にもありません。

最後に、Sonar が Clover によって生成されたレポートを使用できることも確認しました。[...] これらのレポートを利用して、SonarQube サーバーは Clover サーバーを十分に置き換えますか? そうでない場合、ソナーに欠けているものは何ですか?

100% 確信があるわけではありませんが (間違っている場合は訂正してください)、Sonar Clover プラグインは Clover の XML レポート ファイルを解析して (少なくとも Jenkins、Hudson、Bamboo の Clover プラグインはこのように動作します)、表示する数値を取得すると思います。 . つまり、Sonar では、詳細なソース行の色分け、テストごとのカバレッジ、タグ クラウドなどを含むClover の HTML レポートは表示されません。

乾杯マレク

于 2014-07-08T13:10:46.193 に答える