3

私はハドソンでビルドする Maven プロジェクトをたくさん持っており、Sonar は傍観者です。Sonar は、Sonar の統計情報、FindBugs の統計情報、およびコード カバレッジを提供してくれます。

Sonar を使用する場合でも、Maven 経由で EMMA を直接使用する場合でも、ビルド サイクル全体が 2 回実行されることに気付きました。これには、init (私の場合、データベースを再初期化します -- 高価です) と単体テスト (数百 -- これも高価です) が含まれます。

どうすればこれを防ぐことができますか? 私は多くの読書をしましたが、これはコードカバレッジプラグインの設計によるようです-インストルメント化されていないクラスをインストルメント化されたクラスから分離しておくためです。

次のような構成を試しました:

  • Maven の実行: デプロイ、EMMA
  • Maven の実行: デプロイ; 完了時に Sonar にデプロイする
4

2 に答える 2

1

ソナーのドキュメントでは、ソナー プラグインを 2 段階で実行することを推奨しています。

mvn clean install -Dtest=false -DfailIfNoTests=false

mvnソナー:ソナー

テストは第 1 段階でバイパスされ、第 2 段階で暗黙的に実行されます。

1 行の代替手段は、次のコマンドを実行することです:-

mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true

しかし、これはテストを2回実行します-あなたが見つけたように。

于 2011-03-16T22:23:20.857 に答える
1

@Strawberryの回答に追加するには、ユニットテストレポートを再度実行する代わりに再利用できます。ソナーのドキュメントの「既存の単体テスト レポートを再利用する」セクションを参照してください。

これが完了したら、Hudson で以下を構成できます。

clean deploy sonar:sonar
于 2011-03-17T04:26:52.833 に答える