JUnit

Description

このタスクはJUnitのテストフレームワークからのテストを実行します。 フレームワークの最新バージョンは、 http://www.junit.org で見つけることが出来ます。 このタスクはJUnit 3.0以上のバージョンが必要です

テストはネストしたtest タグか batchtest タグによって定義されています。 ネストした要素を見てください。

パラメータ

属性
Attribute
説明
Description
必須
printsummary 各テストケース毎に一行の統計値を出力します。 否。デフォルトでは"off"
fork テストを別の仮想マシンで実行します。 否。デフォルトでは"off"
haltonerror テスト実行中にエラーが起こった場合、ビルドのプロセスを中止します。 否。デフォルトでは"off"
haltonfailure テストが失敗した場合にビルドのプロセスを中止します。(エラーも失敗と見なされます) 否。デフォルトでは"off"
timeout 与えられた時間内に(時間はミリ秒で計測されます)テストが終わらない場合そのテストをキャンセルします。forkが使えない場合は無視されます。 否。
maxmemory 起動された仮想マシンに割り当てられるメモリの総量(forkが使えない場合は無視されます) 否。
jvm このコマンドはJava仮想マシンを呼び出すために使われます。デフォルトは'java'です。このコマンドは java.lang.Runtime.exec() によって解決されます。forkが使えない場合は無視されます。 否。デフォルトでは"java"
dir 仮想マシンを起動するディレクトリ。(forkが使えない場合は無視されます) 否。

ネストした要素

junit はネストした<classpath> 要素をサポートします。これは パス類似構造を表します。

jvmarg

もしforkが使える場合、ネストした<jvmarg>属性によって、追加のパラメータが仮想マシンに送られます。例えば:

<junit fork="yes"> <jvmarg value="-Djava.compiler=NONE"/> </junit>

はJITコンパイルなしの仮想マシンでテストを実行します。

<jvmarg>コマンドライン引数に記述されたすべての属性値を許可します。

formatter

テストの結果は別のフォーマットで出力することが出来ます。usefile属性をfalseに設定しない限り、出力結果はファイルへ送られます。そのファイルの名前はテストの名前によって決定され、<test>outfile属性で設定することが出来ます。

二つのあらかじめ定義されたフォーマッタがあり、一方はテスト結果をXMLフォーマットで出力し、もう一方はプレーンテキスト形式で出力します。明示的にカスタムフォーマッタを指定することもできます。カスタムフォーマッタは org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatterを実装する必要があります。

属性
Attribute
説明
Description
必須
Required
type 定義済みのフォーマッタを使う("XML"か"plain") これらの内、一つ必要
classname カスタムフォーマッタクラスの名前
extension 出力ファイル名につける拡張子 classnameが使われている場合、必須
usefile 出力をファイルに送るかどうかを決定するbool値 否。デフォルトでは真

test

単一のテストクラスの定義

属性
Attribute
説明
Description
必須
Required
name テストクラスの名前 必須
fork 独立した(別の)仮想マシン内でテストを実行します。<junit>内の値設定をオーバーライドします。
haltonerror テスト実行中にエラーが起こった場合、ビルドのプロセスを中止します。<junit>内の値設定をオーバーライドします。
haltonfailure テストが失敗した場合にビルドのプロセスを中止します。(エラーも失敗と見なされます)<junit>内の値設定をオーバーライドします。
outfile テスト結果の基本名。完全なファイル名はこの属性とformatterのエクステンション(拡張子)によって決定されます 否。デフォルトではname属性を用いてTEST-name
if namedプロパティが設定されている場合のみテストを実行します。
unless namedプロパティが設定されていない場合のみテストを実行します。
Only run test if the named property is not set.

No

テストはネストした<formatter>要素によって独自のフォーマッタを定義することが出来ます。

batchtest

パターンマッチに基づいたテスト数の定義

batchtestは幾つでもネストした<fileset>要素から、インクルードされたファイルを集めます。その時、各ファイル毎に.java.classで終わるテストクラス名を生成します。

属性
Attribute
説明
Description
必須
Required
fork 独立した(別の)仮想マシン内でテストを実行します。<junit>内の値設定をオーバーライドします。
haltonerror テスト実行中にエラーが起こった場合、ビルドのプロセスを中止します。<junit>内の値設定をオーバーライドします。
haltonfailure テストが失敗した場合にビルドのプロセスを中止します。(エラーも失敗と見なされます)<junit>内の値設定をオーバーライドします。
if namedプロパティが設定されている場合のみテストを実行します。
unless namedプロパティが設定されていない場合のみテストを実行します。

Batchtestは独自のフォーマッタを、ネストした<formatter> 要素によって定義することができます。

例題

<junit> <test name="my.test.TestCase" /> </junit>

my.test.TestCaseで定義されたテストを同じ仮想マシン内で実行します。テストが失敗しない限り出力は生成されません。

<junit printsummary="yes" fork="yes" haltonfailure="yes"> <formatter type="plain" /> <test name="my.test.TestCase" /> </junit>

my.test.TestCaseで定義されたテストを別の仮想マシンで実行します。テスト終了時に一行の要約が出力されるでしょう。テストの詳細なレポートはTEST-my.test.TestCase.txtで見ることができます。テストが失敗した場合ビルドのプロセスは中止されます。

<junit printsummary="yes" haltonfailure="yes"> <classpath> <pathelement location="${build.tests}" /> <pathelement path="${java.class.path}" /> </classpath> <formatter type="plain" /> <test name="my.test.TestCase" haltonfailure="no" outfile="result" > <formatter type="xml" /> </test> <batchtest fork="yes"> <fileset dir="${src.tests}"> <include name="**/*Test*.java" /> <exclude name="**/AllTests.java" /< </fileset> </batchtest> </junit>

my.test.TestCaseを同じ仮想マシン内で実行します(与えられたクラスパスは無視されます)。テストが失敗した場合のみ警告が出力されます。プレーンテキストでの結果に加えてXMLでの結果もresult.xmlに出力されるでしょう。

${src.tests}内のマッチするファイル毎に、別の仮想マシン内でテストは実行されます。もしテストが失敗した場合ビルドのプロセスは中止されます。結果は TEST-name.txtと名づけられたファイルに集められます。