コード・カバレッジ結果を SonarQube 形式でエクスポートする

SonarQube は SonarQube サーバーにインポートできるフォーマットです。

プロシージャー

  1. 「コード・カバレッジ結果」 ビューで、エクスポートする結果を選択し、右クリックして 「エクスポート」を選択します。
    「カバレッジ結果のエクスポート」ウィンドウが開きます。 複数の結果を選択した場合、結果はマージされ、1 つの結果としてエクスポートされます。
  2. 「エクスポート形式」 ドロップダウン・リストから、 SonarQubeを選択します。
    デフォルトの UTF-8とは異なるエンコードで結果をエクスポートするには、 「設定」 をクリックしてエンコードを指定します。
  3. 空の結果ロケーションを指定してください。
    • ローカル・ディレクトリーにエクスポートするには、「接続」リストから「ローカル」を選択します。 「ロケーション」フィールドで、ファイル・パスを入力するか「参照」を使用してファイルを選択します。
    • リモート・ロケーションにエクスポートするには、「接続」リストから既存のリモート・ロケーションを選択するか、「新規」を使用してリモート・ロケーションを作成します。 「ロケーション」フィールドでリモート・ディレクトリーを入力するか、「参照」を使用してリモート・ロケーションからディレクトリーを選択します。
    「カバレッジ結果のエクスポート」ウィンドウは、エクスポート完了後も指定された宛先を記憶しています。
  4. 結果ファイル名を入力するか、デフォルト名を使用します。
    注: 結果ファイルの名前を指定するか、フィールドをブランクのままにしてデフォルト名のままにします。 ファイル名に特殊文字は使用できません。 さらに、スラッシュ (/) の使用も控えてください。
    ファイル拡張子は、結果をエクスポートするために選択した形式に応じて、自動的に追加されます。
  5. オプションRoot(ルート) フィールドにディレクトリ名または完全修飾パスを指定し、コード・カバレッジ結果に含まれるソース・ファイルのルートの場所を定義します。
    • ソース・ファイルのトップレベル・ディレクトリを設定するディレクトリ名を指定する。
    • 完全修飾パスを指定して、ソース・ファイルのパスから指定されたパスを削除する。
    例えば、以下の場所にあるソース・ファイルを含む結果をエクスポートした場合:
    /home/user/projectA/programA.cbl
    次に、 Root フィールドに "projectA" または "/home/username" のいずれかを指定する必要があります。 エクスポータは、ソース・ファイルを相対パスで参照したコード・カバレッジ結果を出力する:
    projectA/programA.cbl
  6. 結果をエクスポートするには、 「終了」 をクリックします。

    選択した結果に、名前が同一で内容が異なるファイルが含まれている場合は、マージされた結果レポートが不正確になるおそれがあります。 警告メッセージが表示されますので、結果のマージを承認するか、リクエストをキャンセルしてください。

結果

結果のエクスポートが完了すると、指定した結果ロケーションに SonarQube 形式でエクスポートされたファイルが保存されています。

SonarQube 形式でエクスポートされるファイルには、カバレッジ・レポートの .xml ファイル、SonarQube Scanner 設定を含む .properties ファイル、およびレポートに対応するソース・コードが含まれます。 例えば、SonarQube 形式のエクスポート結果の場合は、次のような標準的な出力フォルダー構造になります。
Root/coverageReport.xml
    /sonar-project.properties
    /...     
  • coverageReport.xml は、 一般的な SonarQube カバレッジ・レポート形式のxmlファイルで、対象となる回線に関する情報が含まれている。 このファイル名は、exportResult メソッドの引数の 1 つとして自由に指定できます。
  • sonar-project.properties は SonarQube Scanner の構成ファイルです。 CCSonarQubeExporter は、カバレッジ・データを SonarQube にインポートするために必要なデフォルトおよびユーザー定義のプロパティーをこのファイルに出力します。
    • exportResult メソッドのパラメーターの 1 つである ICCExporterSettings のインスタンスには、メソッド setPropertygetProperty があります。 SonarQube プロパティーのほとんどは接頭辞 sonar. を有し、エクスポーターはこの接頭辞を持つすべてのプロパティーをファイルに書き込みます。
    • 妥当なデフォルト値を持つプロパティーや、エクスポーターに渡された他の特定のデータから値を推測できるプロパティーがあります。 例えば、 sonar.sources は現在の作業ディレクトリ(.)に等しく、 sonar.coverageReportPaths はカバレッジ・レポート・ファイル名に等しい。 ファイルにもこのようなキー値のペアがあります。
    • SonarQube には、sonar.projectKey などの必須プロパティーがあります。 ICCExporterSettings で値が渡されなくても、そのようなキーはエクスポーターが値なしで出力します。ただし、行は次のようにコメント化されます。
      #sonar.projectKey=
      後でファイルを編集して欠落プロパティーを定義するか、それらの値をコマンド・ライン引数として SonarQube Scanner に渡すことができます。
  • src はソース・ファイル、リスト、またはその両方が含まれているフォルダーです。