8

私のセットアップは次のとおりです。

  • ジェンキンス 1.448
  • ソナー2.13
  • ジェンキンス ソナー プラグイン 1.72
  • Sonar 用の MySql データベース

次のプロジェクトがあります。

  • Eclipse プラグイン プロジェクト
  • Mavenの使用
  • 複数のモジュール (親 maven プロジェクト、ソース プラグイン プロジェクト、テスト フラグメント プロジェクト)
  • ソース プラグイン プロジェクトのクラスをテストする単純な JUnit テスト

現時点でのプロセスは次のとおりです。

  • Jenkins は SVN から親プロジェクトをチェックアウトします
  • Jenkins は Maven と Tycho を使用してプロジェクトとそのモジュールをビルドします
  • Jenkins は Surefire を使用してテストを実行し、レポートを作成します。
  • Jenkins は Jenkins Sonar プラグインを使用して mvn sonar:sonar を起動し、コード分析を実行します
  • 各モジュールで静的コード分析が行われます
  • JaCoCo 失敗

Sonar には、利用可能な静的コード分析統計があり、テストの成功率が表示されます。欠けているのは、JaCoCo のコード カバレッジだけです。または、Cobertura のコード カバレッジでさえあるかもしれません。

この時点ではあまり気にしません。これらのいずれかでコード カバレッジの結果が得られるようにしたいだけです。

Cobertura はおそらく結果を生成できないようです - コードをインストルメント化できない - インストルメント化されたコードを間違った場所で探す - Tycho または別のソース/テスト コードのセットアップに対応できない

JaCoCo はその場でコード カバレッジを「監視」できるはずですが、その出力は

[INFO] [17:44:04.708] Sensor JaCoCoSensor...
[INFO] [17:44:04.717] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testSource/target/jacoco.exec
[INFO] [17:44:04.854] Sensor JaCoCoSensor done: 146 ms

[INFO] [17:44:10.587] Sensor JaCoCoSensor...
[INFO] [17:44:10.587] Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/jobs/testPlugin/workspace/testTest/target/jacoco.exec
[INFO] [17:44:10.631] Sensor JaCoCoSensor done: 44 ms

[INFO] [17:44:12.402] Sensor JaCoCoSensor...
[INFO] [17:44:12.402] Project coverage is set to 0% as build output directory doesn't exists: /var/lib/jenkins/jobs/testPlugin/workspace/testParent/target/classes
[INFO] [17:44:12.402] Sensor JaCoCoSensor done: 0 ms

私は何を間違っていますか?どこかの pom.xml で JaCoCo を有効にする必要がありますか? シュアファイアが必要ですか?Cobertura を使用するには何が必要ですか?

4

3 に答える 3

3

私が数ヶ月前に書いたブログ投稿を見ることができます: http://mdwhatever.free.fr/index.php/2011/09/quality-analysis-on-eclipse-plugins-with-tycho-sonar-jacoco -and-swtbot/

于 2012-03-06T23:08:53.840 に答える
3

tycho マルチモジュール プロジェクトの例 (ソース プロジェクトとテスト プロジェクトは別) のページを見つけました。プロパティと構成の一部をコピーした後...

私は現在、maven jacoco プラグインを使用して jacoco コード カバレッジ レポートを生成し、レポートを見つけて再利用する場所を Sonar に伝えているようです。

なぜこれについてのドキュメントがほとんどないのですか?または、なぜ見つけるのが難しいのですか?

https://github.com/Godin/sonar-experiments/tree/master/jacoco-examples/tycho-example

于 2012-01-27T14:50:42.633 に答える
0

コードのインストルメント化が完了したら、インストルメンテーションが生成する特定のコードに対して確実に実行する必要があります。私はあなたのセットアップを使用していませんが、あなたのエラーは、Clover コード カバレッジを機能させていたときに得たものと非常によく似ているようです。コンパイルされたインストルメント化されたコードが保存されているディレクトリからテストを実行するには、確実に指定する必要がありました。

また、-XMaven コマンド ラインでオプションを指定すると、ビルド中に各プラグインのログを読み取ると、探しているものを探している場所が正確にわかるため、非常に貴重であることがわかりました。

編集:

インストルメント化されたコードは、surefire を実行する前にコンパイルする必要があるため、インストルメント化されたソース自体ではなく、コンパイル後のディレクトリを指定する必要があります。

于 2012-01-20T20:03:01.933 に答える