ユニットテスト実行用のAnt用ビルドファイル(build.xml)
以前に書きましたが、Hudsonを使って、
ユニットテストを自動実行するにはJavaならAntが必要です。
(Hudsonの設定画面でAnt実行を設定します)
Antとは「一連の処理を自動化するためのツール」です。
Eclipse上やコマンドラインから実行します。
Antを実行するには、一連の処理を定義したbuild.xmlが必要です。
ユニットテスト用のbuild.propertiesとbuild.xmlを汎用的に使えるようにしてみました。
各環境に応じてbuild.propertiesの定義値を変更すれば、そのまま使えると思います。
1.ディレクトリをクリア
2.コンパイル
3.JARファイル作成
4.ユニットテスト実行
ant build で 1,2,3を実行します。
ant build-unitTest で 1,2,3,4を実行します。
■build.properties
################################################### # ディレクトリ定義 ################################################### # ソースファイル格納ディレクトリ src.dir=src # テストソースファイル格納ディレクトリ test.dir=testsrc # スタブソース格納ディレクトリ stub.dir=stubsrc # クラスファイル格納ディレクトリ class.dir=bin # ライブラリ格納ディレクトリ lib.dir=lib # テスト用ライブラリ格納ディレクトリ test.lib.dir=testlib # JARファイル格納ディレクトリ jar.dir=jar # 設定ファイル格納ディレクトリ conf.dir=conf # 画像ファイル格納ディレクトリ img.dir=img # テスト結果ファイル格納ディレクトリ report.dir=report ################################################### # ファイル定義 ################################################### # JARファイル名 jar.name=HOGEHOGE.jar ################################################### # コンパイル定義 ################################################### # ソースファイルのエンコーディング src.encoding=UTF8 ################################################### # JARファイル作成定義 ################################################### # JARファイルに含めるファイル create.jar.src.dir.includes=**/*.xml, **/*.properties ################################################### # テスト用JARファイル作成定義 ################################################### # テスト用JARファイルに含めるファイル create.TEST-jar.class.dir.includes=**/*Test*, **/Xls*, **/Stub* ################################################### # ユニットテスト実行定義 ################################################### # ユニットテスト対象のソースファイル unitTest.test.dir.include=**/*Test.java # ユニットテスト対象外のソースファイル unitTest.test.dir.exclude =**/TestBase.java
<?xml version="1.0" encoding="UTF-8"?> <project name="UnitTestProject" default="build" basedir="."> <!-- ========================================================== --> <!-- 定義値 --> <!-- ========================================================== --> <!-- プロパティファイル名 --> <property file="build.properties" /> <!-- ソース参照 --> <path id="build.src"> <pathelement path="${src.dir}" /> <pathelement path="${test.dir}" /> <pathelement path="${stub.dir}" /> <!-- 【プロジェクト参照をする場合はココにソース参照を追加】 --> </path> <!-- ライブラリ参照 --> <path id="build.classpath"> <fileset dir="${lib.dir}" includes="**/*" /> <fileset dir="${test.lib.dir}" includes="**/*" /> <!-- 【プロジェクト参照をする場合はココにライブラリ参照を追加】 --> </path> <!-- ========================================================== --> <!-- Antタスク実行順序 --> <!-- ========================================================== --> <target name="build"> <antcall target="clean" /> <antcall target="compile" /> <antcall target="create.jar" /> </target> <target name="build-unitTest"> <antcall target="clean" /> <antcall target="compile" /> <antcall target="create.jar" /> <antcall target="unitTest" /> </target> <!-- ========================================================== --> <!-- ディレクトリをクリア --> <!-- ========================================================== --> <target name="clean"> <delete dir="${class.dir}" /> <delete dir="${jar.dir}" /> <delete dir="${report.dir}" /> <mkdir dir="${class.dir}" /> <mkdir dir="${jar.dir}" /> <mkdir dir="${report.dir}" /> </target> <!-- ========================================================== --> <!-- コンパイル --> <!-- ========================================================== --> <target name="compile"> <javac destdir="${class.dir}" encoding="${src.encoding}" debug="on" includeAntRuntime="no" failonerror="false"> <src refid="build.src" /> <classpath refid="build.classpath" /> </javac> </target> <!-- ========================================================== --> <!-- JARファイル作成 --> <!-- ========================================================== --> <target name="create.jar"> <jar destfile="${jar.dir}/${jar.name}"> <fileset dir="${src.dir}" includes="${create.jar.src.dir.includes}"/> <fileset dir="${class.dir}" excludes="${create.TEST-jar.class.dir.includes}"/> </jar> <jar destfile="${jar.dir}/TEST-${jar.name}"> <fileset dir="${class.dir}" includes="${create.TEST-jar.class.dir.includes}"/> </jar> </target> <!-- ========================================================== --> <!-- ユニットテスト実行 --> <!-- ========================================================== --> <target name="unitTest"> <junit fork="yes" maxmemory="512m" printsummary="on"> <classpath location="${class.dir}" /> <classpath refid="build.classpath" /> <formatter type="xml" /> <batchtest fork="yes" todir="${report.dir}"> <fileset dir="${test.dir}"> <include name="${unitTest.test.dir.include}" /> <exclude name="${unitTest.test.dir.exclude}" /> </fileset> </batchtest> </junit> </target> </project>
スーパーpre記法 シンタックスハイライトの不都合?で、
XMLコメントが消えちゃうんで、とりあえずbuild.xmlはテキスト表示です(;´Д`)