使用している環境は以下の通りです。
それぞれ、JDK・JUnitは導入済みとします。
・Windows 7 SP1
・JDK 1.7.0 (64bit ver.)
・JUnit 4.10
・Antの導入
Antとは、Javaベースのビルドツールの1つで、build.xmlというファイルにxml形式で目的ごとの処理を記述していきます。
導入の方法としては、バイナリを手に入れる方法とソースからビルドする方法があります。
ここでは、バイナリを使用する方法について説明します。
まず、Antのバイナリを以下のページからzipファイルをダウンロードします。
http://ant.apache.org/bindownload.cgi
zipファイルを適当なところに展開しておきます。
次に環境変数を設定します。
設定の必要があるのは、以下の3つです。
JAVA_HOME ・・・JDKがインストールされているフォルダ。以上で導入は完了です。
ANT_HOME ・・・Antがインストールされているフォルダ
PATH ・・・Antの実行ファイルがあるフォルダを追加する。ANT_HOME以下のbinに実行ファイルがある
コマンドプロンプトを開いて、以下のコマンドを実行したときにバージョン番号等が表示されればOKです。
ant -version・1分で分かった気になるAnt
Antでは、「ビルドする」・「テストする」などの目的を「ターゲット」、目的を達成するために実行する「フォルダを作成する」・「javacを実行する」などの個々の処理を「タスク」と呼んでいて、ターゲットごとにいくつかのタスクを実行します。
以下がbuild.xmlの簡単なサンプルです。
これは「SimpleAnt」という名前のプロジェクトのためのbuild.xmlで、「compile」「test」という2つのターゲットを持っています。
「compile」と「test」のそれぞれのターゲットでは、「echo」というタスクを実行するように指定しています。
このタスクは文字列を表示するだけの単純なタスクです。
2行目でデフォルトを「compile」に指定しているため、ターゲットを指定せずにAntを実行した場合、自動的に「compile」ターゲットのタスクを実行します。
実行するときは、build.xmlがあるフォルダでantコマンドを実行します。
C:\Users\siguremon>antまた、「test」ターゲットでは6行目で依存関係に「compile」を指定しています。
Buildfile: C:\Users\siguremon\build.xml
compile: [echo] compileだけど表示するだけで何もしない
BUILD SUCCESSFULTotal time: 0 seconds
そのため、Antで「test」を指定して実行すると、以下のように「test」のタスクの前に「compile」のタスクが実行されます。
C:\Users\siguremon>ant test・JUnitを使うためのbuild.xmlの記述
Buildfile: C:\Users\siguremon\build.xml
compile: [echo] compileだけど表示するだけで何もしない
test: [echo] testだけど表示するだけで何もしない
BUILD SUCCESSFULTotal time: 0 seconds
AntからJUnitを使うためには、3つのポイントがあります。
- junitタスクを使ってテストを実行する (単一のテストクラスを指定)
- junitタスクを使ってテストを実行する (複数のテストクラスを指定)
- junitreportタスクを使ってテストの実行結果を整形する
単一のテストクラスを指定する場合には、以下のように<test>プロパティを使います。 この場合、my.test.TestCaseがテストクラスです。
<junit printsummary="yes" fork="yes" haltonfailure="yes"> <formatter type="plain" /> <test name="my.test.TestCase" /> </junit>
その他、<formatter>プロパティでjunitの出力形式を指定しています。
2.junitタスクを使ってテストを実行する(複数のテストクラスを指定)
複数のテストクラスを指定する場合には、以下のように<batchtest>プロパティを使います。
<batchtest>プロパティの中では、filesetでテストクラスを指定します。
<junit printsummary="yes" haltonfailure="yes"> <classpath> <pathelement location="${build.tests}" /> <pathelement path="${java.class.path}" /> </classpath> <formatter type="plain" /> <batchtest fork="yes" todir="${reports.tests}"> <fileset dir="${src.tests}"> <include name="**/*Test*.java" /> <exclude name="**/AllTests.java" /> </fileset> </batchtest> </junit>
3.junitreportタスクを使ってテストの実行結果を整形する
junitの実行結果は上でも少し触れましたが、<formatter>プロパティで指定することができます。
デフォルトでは"plain"、"brief”、"xml"の3つを指定することができます。
しかし、junitreportタスクを使うとさらに結果を見やすくすることができます。
このタスクを使うためには、junitの<formatter>プロパティで"xml"を指定する必要があります。
その上で、出力結果ファイルを<fileset>で指定し、<report>で最後に出力します。
<junitreport todir="./reports"> <fileset dir="./reports"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="./report/html"/> </junitreport>
・サンプル
以下にサンプルを置きました。 複数のテストクラスを実行し、junitreportで整形した出力結果を作成しています。
https://github.com/siguremon/AntExample/tree/simpleant
・参考
Ant | TECHSCORE(テックスコア)
JUnit Task
JUnitReportタスク