リリース前に単体テスト全実行
PerlのCPANモジュールはインストール時にmake testで単体テストを全実行しますが、Javaで単体テストを全実行したいという場合、antのタスクを作って組み込みます。
説明を付したタスクのサンプルが以下のような感じになります。
<target name="maketest"> <!-- 準備 --> <delete dir="test" failonerror="false" /> <mkdir dir="test/classes" /> <mkdir dir="test/result" /> <!-- テストクラスのコンパイル --> <javac srcdir="src/test/java" destdir="test/classes" target="1.5" encoding="UTF-8" deprecation="on" optimize="off" debug="on"> <!-- クラスパス設定 --> <classpath> <!-- テスト対象のclassを含める --> <pathelement path="build/classes" /> <!-- コンパイルに必要なjarを含める --> <fileset dir="lib"> <include name="**/*.jar" /> </fileset> </classpath> </javac> <!-- テストに必要なリソースをコピー --> <copy todir="/src/test/resources"> <fileset dir="test/classes"> <include name="**/*" /> </fileset> </copy> <!-- テスト全実行 --> <junit> <!-- テスト結果出力フォーマット --> <formatter type="xml"/> <!-- クラスパス設定 --> <classpath> <!-- テスト対象 --> <pathelement path="build/classes" /> <!-- テストクラス --> <pathelement path="test/classes" /> <!-- 必要なjarファイル --> <fileset dir="lib"> <include name="**/*.jar" /> </fileset> </classpath> <!-- 指定したテストをバッチで全実行 --> <!-- ※テストが通らないとリリースできないように設定(halton〜)--> <batchtest todir="test/result" fork="yes" haltonerror="true" haltonfailure="true"> <fileset dir="${src_test_java_dir}"> <include name="**/*Test.java"/> </fileset> </batchtest> </junit> <!-- テスト結果をHTMLのレポートに変換 --> <junitreport> <fileset dir="${test_result_dir}"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="test/result"/> </junitreport> </target>
出力したテスト結果の例は以下のような感じになります。
http://seratch.net/works/java/unittest/java-simple-fh/0.0.1/
私は上記くらいで十分かなという感じですが、「djUnitのカバレッジで出したい!」という場合は、以下のページの説明のようにすると出来るようです。
http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@616E74E381A7646A556E6974E38292E4BDBFE38186
追記:(11/03)
つ、mavenって事ですか。
そうじゃない環境の場合、上記のようにantでやるという用途はありそうですが。