JUnitのテスト結果をレポート出力

Junitで実行したテスト結果、カバレッジを出力できます。
今回はAntビルドファイルで。
下記サンプルを使用すると、JUnit、Jcoverageのレポートを出力します。
ビルドファイルで使用するプロパティファイルものっけときます。

※ECLIPSE_INSTALL_DIR は eclipse をインストールしたディレクトリに修正すること!

【unittest.xml】

<?xml version="1.0" encoding="UTF-8"?>

<project name="djUnit" basedir="." default="djunit.test">

<property file="djunit.properties" />

<!-- クラスパスの設定 -->
<path id="class.path">
<fileset dir="${djunit.lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="./lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${ant.dir.lib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${junit.dir}">
<include name="**/*.jar" />
</fileset>
</path>

<!-- classpathにdjUnitのjarを指定する -->
<taskdef name="djunit" classname="jp.co.dgic.djunit.ant.DJUnitTask" classpath="${ECLIPSE_INSTALL_DIR}/plugins/jp.co.dgic.eclipse.jdt.djunit_0.8.3/djunit.jar" />
<taskdef name="djunit-coverage-report" classname="jp.co.dgic.djunit.ant.CoverageHtmlReportTask" classpath="${ECLIPSE_INSTALL_DIR}/plugins/jp.co.dgic.eclipse.jdt.djunit_0.8.3/djunit.jar" />
<taskdef name="report" classname="com.jcoverage.ant.CoverageReportTask">
<classpath refid="class.path" />
</taskdef>

<!--=============== compile ===============-->
<target name="compile">

<!-- <delete dir="${out.dir}"/> -->
<mkdir dir="${out.dir}" />

<javac srcdir="${src.dir}" encoding="UTF-8" destdir="${out.dir}" debug="yes" classpathref="class.path" />
<javac srcdir="${src.test.dir}" encoding="UTF-8" destdir="${out.dir}" debug="yes" classpathref="class.path" />

<copy todir="${out.dir}">
<fileset dir="./resources">
<include name="**/*.*" />
<include name="*.*" />
</fileset>
<fileset dir="./resources_test">
<include name="**/*.*" />
<include name="*.*" />
</fileset>
</copy>

</target>

<!--=============== test ===============-->
<target name="djunit.test" depends="compile">

<!-- 出力フォルダの作成 フォルダ名 + 日時 -->
<delete dir="${junit.report.dir}" />
<mkdir dir="${junit.report.dir}" />

<djunit printsummary="yes" targetsrcdir="${src.dir}" virtualmock="yes" coverage="yes">

<classpath refid="class.path" />
<classpath path="${out.dir}" />

<formatter type="xml" />

<batchtest todir="${junit.report.dir}">
<fileset dir="${out.dir}">
<include name="${test.dir}" />
</fileset>
</batchtest>

</djunit>

<junitreport>
<fileset dir="${junit.report.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${junit.report.dir}" />
</junitreport>

</target>

<!--=============== djUnit Coverage Report ===============-->
<target name="djunit.report" depends="djunit.test">
<delete dir="${coverage.report.dir}" />
<mkdir dir="${coverage.report.dir}" />
<djunit-coverage-report serFile="./jcoverage.ser" srcdir="${src.dir}" destdir="${coverage.report.dir}">
<classpath refid="class.path" />
</djunit-coverage-report>
</target>

</project>

【djunit.properties】
#djUnitのプラグインのフォルダ
djunit.lib.dir=${ECLIPSE_INSTALL_DIR}/plugins/jp.co.dgic.eclipse.jdt.djunit_0.8.3
#antプラグインのlibフォルダ
ant.dir.lib=${ECLIPSE_INSTALL_DIR}/plugins/org.apache.ant_1.7.0.v200706080842/lib
#junitプラグインのフォルダ
junit.dir=${ECLIPSE_INSTALL_DIR}/plugins/org.junit4_4.3.1

#ソースフォルダ
src.dir=./src
#テストソースフォルダ
src.test.dir=./test
#クラスの出力フォルダ
out.dir=./bin

#djUnitのレポート出力フォルダ
junit.report.dir=./report/junit
#カバレッジの出力フォルダ
coverage.report.dir=./report/coverage

#テストを実行するパッケージを指定する
test.dir=jp/co/**/*Test.class

ex.path=*.accountmanagement.*

1 コメント:

師子乃

2019年4月22日 19:20  

こんばんは。

カバレッジ測定、便利ですね!