Clover アドオンの有効化

robotsnoindex
robotsnoindex
robotsnoindex
robotsnoindex
robotsnoindex

Error rendering macro 'viewport-redirect'

NULL

このページでは、Bamboo のジョブ用にアトラシアンの Clover アドオンを有効にして設定する方法について説明します。

Bamboo を Clover と統合すると、次のことが可能になります。

  • 各ビルド結果のコード カバレッジの詳細 (つまり、テストでカバーされたコードの割合) を表示する
  • ジョブの一定期間におけるコード カバレッジの傾向を表示する
  • ジョブのコード カバレッジの要約を表示する

Bamboo Clover プラグインは Bamboo Cloud にバンドルされており、Clover Cloud の使用がサポートされています。

Atlassian Cloud で Clover を使用するには、保守期間中の Clover ライセンスが必要であることに注意してください。古いライセンスや保守期間が終了したライセンスはサポートされていないため、Clover ライセンスを最新の状態に保ち、毎年ライセンスを更新する必要があります (クラウド固有の Clover ライセンスはないため、個別に管理する必要があります)。Clover ライセンスは、Clover ビルドを実行する Bamboo のマシンの台数に応じて購入する必要があります。通常、この数はリモート エージェントの数と同じですが、制限することもできます。
Clover のライセンス キーを入力するには、[Administration (管理)] > [Plugins (プラグイン)] > [Clover plugin (Clover プラグイン)] に移動します。
 

このページの内容

Clover アドオンを有効にする

  1. ジョブの設定」の説明に従って、目的のジョブに移動します。
  2. [Actions (アクション)] > [Configure Job (ジョブを設定)] の順に選択します。
  3. [Miscellaneous (その他)] タブをクリックします。
  4. [Use Clover to collect Code Coverage for this build (Clover を使用してこのビルドのコード カバレッジを収集する)] を選択して、次の設定を指定します。

 

設定説明
このビルドに Clover を自動的に統合する管理パネル ([Administration (管理)] > [Plugins (プラグイン)] > [Clover Plugin (Clover プラグイン)]) でグローバルに設定していない限り、Clover ライセンス (評価ライセンスが入手可能) を指定する必要があります。
Generate a Clover Historical Report (Clover 履歴レポートを生成する)現在のカバレッジ結果を以前の Clover コード カバレッジ レポートと比較して表示します。
Generate a JSON report (JSON レポートを生成する)アプリまたは外部レポート ビューに組み込める形式で Clover 結果を提供します。
Use plan-defined Clover license key (プランに定義された Clover ライセンス キーを使用する)該当する特定のプランに対してグローバル Clover ライセンスをオーバーライドします。
Clover is already integrated into this build (Clover はこのビルドに統合済み)

すでにレポートを生成するように Clover-for-Ant または Clover-for-Maven を設定している場合にこのオプションを使用します。

Clover XML Location (Clover XML の場所)

Bamboo における Clover の XML レポート ファイルの参照場所を指定します。プランのルート ディレクトリを基準とした相対ファイル パスを指定してください (例: /home/bamboouser/bamboo-home/xml-data/build-dir/MY_PLAN/)。絶対パスは指定しないでください。

 target/site/clover/clover.xml 

スクリーンショット: ジョブに対して Clover を有効にするための設定


Clover の自動統合

自動統合は、Ant、Maven 2.x、Maven 3.x、および Grails タスクと連携します。

  1. Clover コード カバレッジ設定で、[Use Clover to collect Code Coverage for this build (Clover を使用してこのビルドのコード カバレッジを収集する)] を選択します。
  2. [Automatically integrate Clover into this build (このビルドに Clover を自動的に統合する)] を選択します。
  3. Clover のグローバル ライセンス キーを入力するか ([Administration (管理)] > [Plugins (プラグイン)] > [Clover Plugin (Clover プラグイン)] に移動)、[Use plan-defined Clover license key (プランに定義された Clover ライセンス キーを使用する)] を有効にして、表示されるテキスト フィールドにキーを貼り付けます。

さらに、次のことが可能です。

  • [Generate a Clover Historical Report (Clover 履歴レポートを生成する)] を選択して、現在のカバレッジ結果を以前の Clover コード カバレッジ レポートと比較します。
  • [Generate a JSON report (JSON レポートを生成する)] を選択して、アプリまたは外部レポート ビューに組み込める形式で Clover 結果を取得します

 

自動統合時の動作...

 Clover の自動統合を有効にすると、Bamboo で最初に次のことが行われます。

  • Clover Report (System) (Clover レポート (システム))」という名前のアーティファクトを作成します。これは、ジョブの [Artifacts (アーティファクト)] タブに表示されます。

そして、各ビルドの実行時に次のことが行われます。

  • Clover ライセンス (グローバルまたはプラン ライセンス キー) を一時ファイルに解凍して、以下に渡します。
    • Ant タスク (-Dclover.license.path=/<bamboo-home>/xml-data/build-dir/<your-job>/.clover/clover.license として)
    • Maven タスク (-Dmaven.clover.licenseLocation=/<bamboo-home>/xml-data/build-dir/<your-job>/.clover/clover.license として)
  • 以下を追加してタスクを強化します。
    • Ant ターゲット
    • Maven ゴール ("clover2:setup verify clover2:aggregate clover2:clover" など)
  • Clover XML レポートと HTML レポートを生成します (既定)。
  • プラン要約の統計とグラフを生成します。

 

Clover の手動統合

Clover の手動統合は、Clover の呼び出しが可能なあらゆる種類のタスク (Ant、Maven 2.x、Maven 3.x、Command、Grails) と連携します。 

  1. Clover コード カバレッジ設定で、[Use Clover to collect Code Coverage for this build (Clover を使用してこのビルドのコード カバレッジを収集する)] を選択します。
  2. [Clover is already integrated into this build (Clover はこのビルドに統合済み)] を選択します。
  3. 参照場所を指定します。  Clover によって生成された XML レポート ファイルはここで Bamboo によって参照されます。
  4. [Artifacts (アーティファクト)] タブで、[Create Definition (定義を作成)] をクリックし、次のようにフォームに入力します。

    名前"Clover Report" から始める必要があります。
    場所HTML レポートのディレクトリを指す必要があります (例: target/site/clover)。
    コピー パターン**/*.* を使用します。

  5. ビルド スクリプトで Clover を設定して、XML と HTML の両方のレポートが生成されるようにします。

    Ant の場合:

    <clover-report initstring="target/clover/database/clover.db">			
        <current outfile="target/site/clover/clover.xml" />
        <current outfile="target/site/clover">
            <format type="html"/>
        </current>
    </clover-report>

    Maven の場合:

    <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>maven-clover2-plugin</artifactId>
        <configuration>
            <generateHtml>true</generateHtml>
            <generateXml>true</generateXml>
        </configuration>
    </plugin>
  6. ビルド スクリプトで Clover ライセンスを設定するか、ジョブ設定の適切なタスク パラメーターとして Clover ライセンスを渡します。

    1. Clover ライセンス キーをファイル (/opt/bamboo/clover.license など) に保存します。
    2. 次の方法で、ライセンス キーの場所をビルド タスクに渡します。
      • ビルド スクリプトで場所を定義する
      • 計画設定の Ant/Maven タスクの Java プロパティとして渡す


    例: pom.xml でライセンスの場所を宣言 (Maven)

    <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>maven-clover2-plugin</artifactId>
        <version>3.1.8</version>
        <configuration>
            <licenseLocation>/opt/bamboo/clover.license</licenseLocation>
            <generateXml>true</generateXml>
            <generateHtml>true</generateHtml>
        </configuration>
    </plugin>


    例: build.xml でライセンスの場所を宣言 (Ant)

    <project>
      <property name="clover.license.path" location="/opt/bamboo/clover.license"/>
      <!-- ... -->
    </project>


    例: Ant タスクのライセンスの場所を渡す

    clean with.clover test clover.report -Dclover.license.path=/opt/bamboo/clover.license


    例: Maven タスクのライセンスの場所を渡す

    mvn clean clover2:setup verify clover2:aggregate clover2:clover -Dmaven.clover.licenseLocation=/opt/bamboo/clover.license

     

     

ビルドのたびに、Bamboo は Clover XML ファイルを解析して、計画要約の統計とチャートを生成します。計画要約ページとジョブ要約ページに [Clover] タブが表示されます。 

Clover の結果を参照する

Clover HTML レポートとジョブに関する Clover 統計: 「計画の Clover コード カバレッジの表示」をご確認ください。 

計画の Clover コード カバレッジの要約:「ビルドの Clover コード カバレッジの表示」をご確認ください。

複数の計画にわたる Clover コード カバレッジの統計:「複数の計画にわたるレポートの生成」をご確認ください。

Clover が動作するマシンを制限する

Clover がライセンスされているマシンの数よりも多くのリモート エージェントがある場合は、次の機能を使用して Clover が動作するマシンを制限できます。
  1. Clover でビルドを実行する EC2 イメージごとに、イメージの設定に「clover=true」などの機能を追加します。
    これを行うには、[管理] > [Elastic Bamboo] > [設定] に移動します。エラスティック イメージを選択して、[Add Capability (機能を追加)] をクリックします。
  2. 「clover=true」などの一致要件を各ジョブの設定に追加します。
    これを行うには、[アクション] > [プランを構成] > [ジョブ] の順に移動します。Clover を実行するジョブを選択して、[要件] をクリックし、次に [Add Extra Requirement (要件を追加)] をクリックします。

トラブルシューティング

自動または手動の Clover 統合と生成されたプロセス

通常は、自動 Clover 統合を使用するか、maven-clover2-plugin に依存関係を手動で追加するだけで十分です。

ただし、ビルドが別の JVM プロセスを生成する場合 (例: フォークされた JVM で実行されるユニット テスト、その場でインスタンス化されたコンテナーでのテスト、別のサーバーにデプロイされたコードの呼び出しテスト)、その生成されたプロセスの依存関係を Clover JAR に手動で追加する必要があります。

ナレッジ ベース記事の「NoClassDefFoundError com_atlassian_clover/CoverageRecorder」をご確認ください。

自動 Clover 統合とサブディレクトリでの構築

サブディレクトリでビルドを実行して (たとえば Maven タスクの構成で "作業サブディレクトリ" フィールドを設定して)、自動 Clover 統合がある場合、"Clover レポート (システム)" アーティファクトのロケーションを修正しなければならない場合があります。修正しないと、自動 Clover 統合で既定のパス (たとえば Maven との統合の場合は "target/site/clover") が使用されるため、HTML レポートが空になる可能性があります。

自動 Clover 統合とマルチモジュール Maven プロジェクト

モジュール間に依存関係があるマルチモジュール Maven プロジェクトを持ち、自動 Clover 統合を使用している場合、Clover がまだ有効になっていなかったビルド フェーズで、依存アーティファクトのインストゥルメント化された JAR がテスト実行に利用されることがあります。詳細は BAM-13208 をご確認ください。このような場合は次をお勧めします。

  • 自動 Clover 統合が有効になっている別のジョブを作成します。
  • このジョブに何もしない Maven タスクを作成します ("クリーン" ゴールと呼ぶなど)。
  • Bamboo は Clover に関連するゴールを自動的に追加します (clover2:setup verify clover2:aggregate clover2:clover)。


 

最終更新日: 2021 年 2 月 12 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.