2016-05-05 6 views
2

sonarはIntellijIdea/Jacocoカバレッジレポートで生成されたコードカバレッジレポートを取得していません。
ステップ1
のAnt
ビルドファイルのパス:JUnitの-のbuild.xml
ピックアップにjacocoレポートをソナー取得しようとしてSonarとネイティブTeamcityコードカバレッジ(Java)

私の相続人は一つのサンプルは

ビルドステップを生成しましたターゲット:デフォルト
JaCoCoカバレッジ有効
実行:前のすべてのステップが正常に終了した場合
ステップ2
SonarQubeランナー 実行します。

.teamcity
        coverage_jacoco
                J:以前のすべてのステップが

アーティファクト正常に終了した場合 .teamcity/coverage_jacoco/jacoco.exec

JaCoCoSensor:JaCoCoレポートが見つかりません:/export/.../BuildAgent2/work/.../.teamcity

UT JaCoCoレポートacoco.exec /coverage_jacoco/jacoco.exec

ソナー:
このコンポーネントは、カバレッジの詳細を持っていません。

+0

私は同じ問題があります。 Jacocoはビルド・ステップの一環としてチーム・シティを経て実行され、ソナーは同じステップでMavenの目標にソナー:ソナーを追加して実行されます。私はteamcityがjacocoファイルをビルドエリアの外に置いていると思っています。そして、.thamcity/coverage_jacocoパートへのパブリッシングアーティファクトは、ソナーがすでに実行された後に起こります。これを修正することは素晴らしいことでしょう。 – AutomatedMike

答えて

0

問題は、TeamCity jacocoランナーが、出力ファイルを、sonarプラグインまたはmaven/antビルドの一部として実行されたときにソナーによって見つからない一時ファイルの場所に配置することです。 ".teamcity"はビルドエリアではなく公開されたアーティファクトストアにあり、公開前にジャココの出力はランダムに指定されたディレクトリにあるように見えます。

代わりに、teamcity jacocoランナーをオフにして、MavenまたはAntビルドを介してカバレッジとソナースキャンを開始することもできます。 Sonarは、administration-> java-> jacoco設定(ビルドまたはモジュールルートとの相対関係)に正しい場所を入れて結果を見つけるように設定することができます。

カバレッジレポートをチームシティに戻すには、レポートhtmlファイルをcoverage.zipファイルに収集するビルドの一般設定にアーティファクトを追加する必要があります。次に、ビルド結果に[コードカバレッジ]タブが表示されます。 (。あなたは、あなたがまだにもチームシティー・カバレッジ・ランナーを実行している2を取得する場合)Mavenのための短期で

ビルド(Antは論理的に同じになります):

でカバレッジオプションをオフ
  • ターンチームシップビルドステップ
  • 組織を追加します。jacoco:jacoco-mavenの-プラグイン:sonarqubeではソナーによって
  • をレポート消耗品を作成するための準備エージェントの目標は、 "ターゲット/ jacoco.exec" にjacoco UTレポートを設定
  • org.jacocoを追加:jacoco-maven-プラグイン:チームシティで使用するHTMLレポートを作成するレポートの目標
  • チームメイトのタブとしてhtmlレポートをタブとして表示させるには、このアーティファクトを「target/site/jacoco/**/ => coverage.zip」に追加します。

複数のレポートがあるマルチモジュールビルドの場合、ソーサーではうまく見えますが、これをチームシップにする方法は見つけられません。助けてくれるジャココのマージのゴールがありますが、私はそれで成功していません - そして、それはソナーの見解を台無しにするだろうと思っています。

関連する問題