Ant スクリプトからのコード・カバレッジの使用可能化

ビルドしているコードが、指定したコード・カバレッジの許容基準を満たしているかを確認するため、Ant スクリプトからコード・カバレッジを使用可能にすることができます。これを行うには以下の手順が必要です。

ワークベンチにコード・カバレッジの結果を表示することもできます。

コード・カバレッジを使用可能にするための Ant スクリプトの構成

コード・カバレッジを使用可能にする Ant スクリプトを構成するため、以下を CLASSPATH 環境変数に追加します。
<install_dir>/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>
また、ビルド・ファイルに新規タスクを定義します。例:

<taskdef name="instrument" classname="com.ibm.rational.llc.engine.instrumentation.anttask.InstrumentationTask" classpath="${install_dir}/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>"/>

インスツルメンテーション・タスクのフォーマットは次のとおりです。

<instrument buildPath="" baseLineFile="" saveBackups="" outputDir=""/>

場所:

buildPath:
コード・カバレッジ・データを収集するファイルを指定します。ビルド・パスは、クラス・ファイル名、JAR ファイル名、またはディレクトリー名のいずれかを参照します。Ant で使用される他のパス参照と同様に定義することができます。


baseLineFile:
ベースライン・ファイルを格納するパスを指定します。このベースライン・ファイルに対して、装備するコードを比較し、コード・カバレッジ統計を生成します。これは、レポート生成 Ant タスクへの入力データとなります。


saveBackups:
オリジナル・クラスや JAR ファイルを *.bak へと名前変更するかどうかを指定します。saveBackups に true を設定すると、バックアップ・ファイルを生成します。saveBackups に false を設定すると、オリジナル・ファイルを上書きする (つまりオリジナル・ファイルを失う) ことになります。
注: saveBackups オプションで、デフォルト値は false です。


outputDir:
装備するファイルを格納するロケーションを指定します。デフォルトでは、装備するファイルは、装備しているファイルと同じロケーションに格納されます。

例 1

以下の例では、bin/ にあるすべてのファイルのコード・カバレッジ・データを収集し、ベースライン・ファイルを blfile.coveragedata に格納します。これらのファイルに対してバックアップは生成されません。また、装備するファイルは、coverageData_files に格納されます。

<instrument saveBackups="false" baseLineFile="blfile.coveragedata" buildPath="bin/" outputDir="coverageData_files"/>

例 2

以下の例では、build.Dir として参照される bin/ にあるすべてのファイルのコード・カバレッジ・データを収集し、ベースライン・ファイルを blfile.coveragedata に格納します。これらのファイルのバックアップが、それぞれ生成されます。

<path id="build.Dir"> <pathelement location="bin"/> </path>
<instrument saveBackups="true" baseLineFile="blfile.coveragedata" buildPathRef="build.Dir" />

例 3

以下の例では、bin/ にあるすべてのファイルのコード・カバレッジ・データを収集し、ベースライン・ファイルを blfile.coveragedata に格納します。これらのファイルのバックアップが、それぞれ生成されます。

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <pathelement location="bin"/> </buildPath> </instrument>

例 4

以下の例では、ディレクトリー名に Test を含むディレクトリーにあるファイルを除き、bin/ にある com をディレクトリー名に含むすべてのサブディレクトリーのコード・カバレッジ・データを使用可能にします。コード・カバレッジの分析が行われるファイルに対して、それぞれバックアップが生成され、ベースライン・ファイルを blfile.coveragedataに格納します。

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> <include name="**/*com*/*"> </fileset> </buildPath> </instrument>

例 5

以下の例では、ディレクトリー名に Test を含む bin のサブディレクトリーにあるファイルを除いて、bin/bin2/ のすべてファイルのコード・カバレッジ・データを使用可能にします。コード・カバレッジの分析が行われるファイルに対して、それぞれバックアップが生成され、ベースライン・ファイルを blfile.coveragedataに格納します。

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> </fileset> </buildPath> <buildPath> <pathelement location="bin2"/> </buildPath> </instrument>

Ant スクリプトの実行

一度、コード・カバレッジを使用可能にするため Ant スクリプトを構成したら、コマンド行またはワークベンチから Ant スクリプトを実行することができます。

コマンド行からの実行

コマンド行から Ant スクリプトを実行するために、以下のことを行ってください。

  1. JAVA_HOME 環境変数に JDK がインストールされているディレクトリーを設定します。
  2. CLASSPATH 環境変数が probekit.jar ファイルの絶対パスとファイル名を含んでいるか確認してください。probekit.jar ファイルは、製品インストールのプラグイン・フォルダーでバージョン番号が高く、タイム・スタンプが最新な org.eclipse.hyades.probekit サブフォルダーに配置されます。
  3. CLASSPATH 環境変数が、JAVA_HOME (JAVA_HOME/bin/java のような Java インストールのパスが有効である) を含んでいるか確認してください。
  4. PATH 環境変数が、プラットフォームに適した org.eclipse.hyades.probekit サブフォルダーへの絶対パスを含んでいるか確認してください。例:
  5. LLC_PLUGIN をプラグイン・フォルダーへのパスとして設定します。
    set LLC_PLUGIN=<install_dir>¥plugins

ant -lib=<install_dir>¥plugins¥org.eclipse.hyades.probekit_<version>¥probekit.jar myTarget

ワークベンチからの実行

ワークベンチから Ant スクリプトを実行するために、以下のことを行ってください。

コード・カバレッジ統計の生成

クラスパスに以下が含まれているか確認してください。
<install_dir>¥plugins¥com.ibm.rational.llc.engine_1.0.0.<version_number>

コマンド行から、またはコードの上のディレクトリーからコード・カバレッジ統計を生成するために、以下を実行してください。

java -Dcoverage.out.file=C:¥coverage_report¥coverage_data.coveragedata com.ibm.rational.llc.example

注: Java を製品インストールのものと一致させて設定する必要があります。

コード・カバレッジ・レポートの生成

Ant を使用してレポートを生成するために、以下のことを行ってください。
BIRT Runtime Report Engine をダウンロードし、コンテンツを unzip します。 以下の環境変数を設定します。

例えば、以下のように指定します。
<path id="lib.path"> <pathelement location="${env.LLC_COMMON_PLUGIN}"/> <pathelement location="${env.LLC_REPORT_PLUGIN}"/> <fileset dir="${env.BIRT_HOME}/lib" includes="*.jar"/> </path>

ビルド・ファイルにコード・カバレッジ・レポート生成の新規タスクを定義します。例えば、以下のように定義します。

<taskdef name="code-coverage-report" classname="com.ibm.rational.llc.report.birt.adapters.ant.ReportGenerationTask" classpathref="lib.path"/>

コード・カバレッジ・レポートのタスクのフォーマットは次のとおりです。

<code-coverage-report outputDir="" coverageDataFile="" baseLineFiles=""> <filters> <filter type="" value=""/> </filters> <configurations> <configuration name="" value=""/> </configurations> </code-coverage-report>

場所:

outputDir:
レポートの結果を格納するロケーションを指定します。


coverageDataFile:
レポートを生成するカバレッジ・データ・ファイルを 1 つ以上指定します。Ant で使用される他のパス参照と同様に定義することができます。


baseLineFiles:
インスツルメンテーション・タスクの一部として生成されたベースライン・ファイルを1 つ以上指定します。Ant で使用される他のパス参照と同様に定義することができます。


filters:
オプション: レポートの結果をフィルターする場合に使用します。


filter:
タイプ: レポートに適用するフィルターのタイプ。

値: レポートに適用するフィルターの値。
使用可能なフィルター:

構成:
オプション: さまざまな計算の構成を指定する場合に使用します。


構成:
名前: 構成名。

値: 構成の値。
使用可能な構成:

例 1

以下の例では、coverage-data/blfile.coveragedata をベースライン・ファイルとして使用し、coverage-data/coverage.coveragedata にレポートの生成を収集します。レポートは coverage-reports に格納され、line_coverage_threshold フィルターを 80 パーセントのしきい値で適用します。デフォルト・コンストラクターは、コード・カバレッジの計算から除外されます。

<code-coverage-report outputDir="coverage-reports/" coverageDataFile="coverage-data/coverage.coveragedata" baseLineFiles="coverage-data/blfile.coveragedata"> <filters> <filter type="line_coverage_threshold" value="80"/> </filters> <configurations> <configuration name="excludeDefaultConstructor" value="true"/> </configurations> </code-coverage-report>

例 2

以下の例では、blfile1.coveragedatablfile2.coveragedataをベースライン・ファイルとして使用し、coverage1.coveragedatacoverage2.coveragedata の 2 つのカバレッジ・ファイルにレポートの生成を収集します。レポートは coverage-reports に格納されます。デフォルトで、デフォルト・コンストラクターが、コード・カバレッジの計算に組み込まれています。

<code-coverage-report outputDir="coverage-reports/" coverageDataFile="coverage-data/coverage1.coveragedata;coverage-data/coverage2.coveragedata" baseLineFiles="coverage-data/blfile1.coveragedata;coverage-data/blfile2.coveragedata"> </code-coverage-report>

ワークベンチにコード・カバレッジの結果を表示する

ワークベンチに Ant スクリプトのコード・カバレッジの結果を表示するには、次のようにします。

コード・カバレッジの使用不可化

Ant タスクを使用して装備されたクラスを使用不可にするには、プロジェクトを再コンパイルする、または saveBackups を使用可能に設定してある場合、.class ファイルを .class.bak ファイルと置き換えてください。

関連概念
コード・カバレッジ・インディケーター

関連タスク
コード・カバレッジの使用可能化
コード・カバレッジのレベルおよびフィルターの構成
コード・カバレッジ・インディケーターの構成
コード・カバレッジ・レポートの分析