このタスクは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>
要素をサポートします。これは パス類似構造を表します。
もしforkが使える場合、ネストした<jvmarg>
属性によって、追加のパラメータが仮想マシンに送られます。例えば:
<junit fork="yes"> <jvmarg value="-Djava.compiler=NONE"/> </junit>
はJITコンパイルなしの仮想マシンでテストを実行します。
<jvmarg>
はコマンドライン引数に記述されたすべての属性値を許可します。
テストの結果は別のフォーマットで出力することが出来ます。usefile属性をfalseに設定しない限り、出力結果はファイルへ送られます。そのファイルの名前はテストの名前によって決定され、<test>
のoutfile
属性で設定することが出来ます。
二つのあらかじめ定義されたフォーマッタがあり、一方はテスト結果をXMLフォーマットで出力し、もう一方はプレーンテキスト形式で出力します。明示的にカスタムフォーマッタを指定することもできます。カスタムフォーマッタは
org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter
を実装する必要があります。
属性 Attribute |
説明 Description |
必須 Required |
type | 定義済みのフォーマッタを使う("XML"か"plain") | これらの内、一つ必要 |
classname | カスタムフォーマッタクラスの名前 | |
extension | 出力ファイル名につける拡張子 | classnameが使われている場合、必須 |
usefile | 出力をファイルに送るかどうかを決定するbool値 | 否。デフォルトでは真 |
単一のテストクラスの定義
属性 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
は幾つでもネストした<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
と名づけられたファイルに集められます。