NetBeansでカバレッジツールのCoberturaを使用する方法
Java用のテスト網羅率測定ツールのCoberturaは簡単に設定出来ます。ここに備忘録を記します。
使用した環境
OS: Windows XP
IDE: NetBeans IDE 6.8
JDK: 1.6
Coberturaの導入
本家WEBサイトの
http://cobertura.sourceforge.net/index.html
以下のページのリンクよりダウンロードします。
http://cobertura.sourceforge.net/download.html
cobertura-1.9.3-bin.zip
環境変数ANT_HOMEの設定
ユーザー環境変数に以下を追加します。(※NetBeans IDEをインストールしたフォルダ配下)
ANT_HOME
C:\Program Files\NetBeans 6.8\java3\ant
Coberturaライブラリのインストール
C:\Program Files\NetBeans 6.8\java3\ant\lib
上記の例のように、Antのライブラリフォルダに以下のJarライブラリを配置します。
project.propertiesの編集
/nbprojects/project.properties
設定ファイルの記述箇所を、以下のように追加変更します。
run.test.classpath=\
${env.ANT_HOME}/lib/asm-3.0.jar:\
${env.ANT_HOME}/lib/asm-tree-3.0.jar:\
${env.ANT_HOME}/lib/cobertura.jar:\
${env.ANT_HOME}/lib/jakarta-oro-2.0.8.jar:\
${env.ANT_HOME}/lib/log4j-1.2.9.jar:\
${build.instrumented.dir}:\
${javac.test.classpath}:\
${build.test.classes.dir}
また、同じファイルの最終行に下記の設定を追記します。
# For Cobertura
build.instrumented.dir=${build.dir}/instrumented
build.report.dir=${build.dir}/report
build.report.cobertura.dir=${build.report.dir}/cobertura
build.xmlの編集
上記のファイルの最後に、以下の設定を追加します。(※の前に書きます)
<property environment="env"/> <taskdef classpath="cobertura.jar" resource="tasks.properties"/> <target name="-pre-compile-test"> <delete dir="${build.instrumented.dir}" /> <delete dir="${build.report.cobertura.dir}" /> <mkdir dir="${build.instrumented.dir}" /> <mkdir dir="${build.report.cobertura.dir}" /> <cobertura-instrument todir="${build.instrumented.dir}"> <fileset dir="${build.classes.dir}"> <include name="**/*.class"/> </fileset> </cobertura-instrument> </target> <target name="-post-test-run"> <!--You can disable the html portion if you are using the hudson plugin and rely on the xml--> <cobertura-report format="html" srcdir="${src.dir}" destdir="${build.report.cobertura.dir}"/> <!--Used by the hudson plug-in--> <cobertura-report format="xml" srcdir="${src.dir}" destdir="${build.report.cobertura.dir}"/> <delete file="cobertura.ser" /> </target>
テストの実行
プロジェクトの[テスト]実行で以下のフォルダにレポートのHTMLが生成されます。
/build/report/cobertura/index.html
※この設定では、ファイル単体のテストでカバレッジレポートは出力されません。