Ant(build.xml)からCoberturaを使用してカバレッジを取得する方法です。
以下のサイトも合わせて参考にして頂ければと思います。
JenkinsでCoberturaを使用してカバレッジを取得
※Coberturaモジュール(Cobertura-x.x.x.1-bin.tar.zip)のダウンロードや
Jenkinsのジョブ設定について記載しています。
build.xmlの設定内容は、以下となります。
(以下、試したバージョン情報)
apache-ant:1.9.4 coberturaモジュール:2.0.3
build.xml
<project basedir="." default="build" name="[任意のディレクトリ]">
<property name="build.dir" value="${basedir}/build/>
<!-- コンパイル済classファイルにログ出力コードを埋め込んだファイルの出力先 -->
<property name="build.instrumented.dir" value="${build.dir}/classes"/>
<!-- カバレッジレポートの出力先 -->
<property name="build.coverage.dir" value="${build.dir}/cobertura/coverage"/>
<!-- JUnitレポートの出力先 -->
<property name="junit.ouput.dir" value="./build/junit/coverage"/>
<!-- ビルドに必要なパスがあれば設定 -->
<path id="sample.classpath">
<pathelement location="xxx/lib" />
</path>
<!-- cobertura-x.x.x.1-bin.tar.zipを解凍したディレクトリ -->
<!-- ${basedir}直下のcobertura-libに配置した場合 -->
<property name="cobertura.dir" value="${basedir}/cobertura-lib"/>
<!-- Cobertura.jarのパス設定 -->
<path id="cobertura.classpath">
<fileset dir="${cobertura.dir}">
<include name="cobertura.jar" />
<include name="lib/**/*.jar" />
</fileset>
</path>
<!-- mainタスク実行(build.xmlから指定するタスク) -->
<!-- build-project : Javaコンパイル -->
<!-- cobertura_instrument : classファイルのリコンパイル(Coberturaログ埋め込み)-->
<!-- JUnitTest : JUnitテスト実行 -->
<!-- coverage_report : Coberturaレポート出力 -->
<target name="main" depends="build-project,cobertura_instrument,JUnitTest,coverage_report" />
<!-- Cobertura:タスク宣言 -->
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
<!-- cobertura.serの削除(serファイルのお掃除) -->
<target name="clean">
<delete dir="target/classes" />
<delete dir="target/test-classes />
<delete file="cobertura.ser" />
</target>
<!-- Javaコンパイル (JDK1.7) -->
<target depends="clean" name="build-project">
<javac debug="true" encoding="utf-8" destdir="target/classes" source="1.7" target="1.7" fork="yes">
<src path=[Javaファイル格納パス] />
<classpath refid="sample.classpath" />
</javac>
</target>
<!-- Cobertura:classファイルのリコンパイル -->
<!-- classファイルの出力先がtarget/classesの場合 -->
<target name="cobertura_instrument">
<cobertura-instrument todir="${build.instrumented.dir}">
<fileset dir="target/classes>
<include name="**/*.class" />
</fileset>
</cobertura-instrument>
</target>
<!-- JUnit -->
<target name="JUnitTest">
<mk dir="${junit.output.dir}" />
<junit fork="yes">
<sysproperty key="net.sourceforge.cobertura.datafile" file="${basedir}/cobertura.ser" />
<formatter type="xml" />
<!-- coberturaのclassパスを先頭に記述 -->
<classpath refid="cobertura.classpath" />
<classpath location="${build.instrumented.dir}" />
<batchtest todir="${junit.output.dir}">
<fileset dir="target/test-classes" />
</batchtest>
</junit>
<!-- JUnit:レポート出力 -->
<junitrepot>
<fileset dir="${junit.output.dir}">
<include name="TEST-*.xml" />
</fileset>
<repot format="noframes" todir="${junit.output.dir}" />
</junitreport>
</target>
<!-- Cobertura:レポート出力 -->
<target name="coverage_repot>
<cobertura-report srcdir="[Javaファイル格納パス]" destdir="${build.coverage.dir}" encoding="shift_jis" />
<cobuertura-report srcdir="[Javaファイル格納パス]" destdir="${build.coverage.dir}" format="xml" encoding="shift_jis" />
</target>
build.xmlの設定は、以下のサイトを参考にさせて頂きました。
Cobertura、Ant、Jenkinsでコードカバレッジを取得する方法