NetBeansでCoverturaを使うときの設定

カバレッジ計測用のCoverturaをNetBeansで使うときの設定メモ
気の利いたプラグインはないので、antをいじくる。
元ネタはここなんだけど、ちょっと「NetBeans的」ではないので、修正。NetBeanswikiなのに。
CoberturaAnt - NetBeans Wiki


Coverturaはここから。今回は1.9.4.1というバージョンをダウンロード。
Cobertura download | SourceForge.net


まずは、PROJECT/nbproject/private/private.propertiesでCoverturaのパスを指定しておく。最後あたりに追加。

covertura.dir=C:\\java\\tool\\cobertura-1.9.4.1


つぎに、PROJECT/nbproject/project.propertiesにクラスパスなどの設定。run.test.classpathあたりを変更。

covertura.lib=\
    ${covertura.dir}/lib/asm-3.0.jar:\
    ${covertura.dir}/lib/asm-tree-3.0.jar:\
    ${covertura.dir}/cobertura.jar:\
    ${covertura.dir}/lib/jakarta-oro-2.0.8.jar:\
    ${covertura.dir}/lib/log4j-1.2.9.jar
run.test.classpath=\
    ${covertura.lib}:\
    ${build.instrumented.dir}:\
    ${javac.test.classpath}:\
    ${build.test.classes.dir}

あと、末尾にこんな感じの設定を追加。

build.instrumented.dir=${build.dir}/instrumented
build.report.dir=${build.dir}/report
build.report.cobertura.dir=${build.report.dir}/cobertura


最後にPROJECT/build.xmlに追加。のあとあたりに。

    <target name="-post-init">
        <taskdef classpath="${covertura.lib}" resource="tasks.properties"/>
    </target>
    <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>


これで、「プロジェクトをテスト」したときなどにPROJECT/build/report/coberturaにカバレッジ結果が生成される。