djunitタスクを利用するためには、junitタスクが実行可能な環境が必要です。
ですので、ANT_HOMEのlibディレクトリに、
- junit.jar
- optional.jar(または、ant-junit.jar)
をコピーし、junitタスクを実行可能な状態にしてください。
djunitタスクには、junitタスクとほぼ同等の属性があります。
ここでは、junitタスクとの相違点だけを説明します。
| 属性名 | 内容 | 設定できる値 | デフォルト値 | 必須 |
| virtualmock | VMOの使用 | yes/on/true, no/off/false | no | |
| coverage | カバレッジの使用 | yes/on/true, no/off/false | yes | |
| targetSrcDir | 検査対象ソース | 検査対象ソースのパス | | 必須 |
| excludesPath | 除外パッケージ | 除外したいパッケージ名 | | |
| ignorelibrary | 依存ライブラリを無視 | yes/on/true, no/off/false | no | |
| usenoverify | -noverifyオプションを付ける | yes/on/true, no/off/false | no | |
| notignorepattern | 無視しないクラス | 無視しないクラス名 | | |
| asmversion | ASMのバージョンを指定する | ASM or ASM2 or ASM15 | ASM | |
この属性は、とても重要です。Eclipse上ではプロジェクト情報から自動的に取得できたので、意識する必要がありませんでしたが、antでは、手動で設定してください。検査対象クラスのソースのパスです。
これが設定されていないと、virtualmock, coverage属性にyesを設定しても、無意味となります。
例 : targetSrcDir="d:/Projects/xxx/src"
複数のパスを指定するときは、「;」で区切ってください。
「依存ライブラリを無視する」にたいする例外クラスを指定します。
例 : notignorepattern="java.io.*;java.lang.System"
djUnitのクラスローダにロードさせたくないクラス、パッケージを指定します。ほとんどの場合、指定しなくても良いはずです。
例 : excludesPath="jp.co.dgic.*;jp.co.dgic.djunit.*"
ASM libraryのバージョンを指定します。「ASM」「ASM2」「ASM15」のうちどれかを指定します。「ASM」を指定すると、バージョン3.1のASMを使用します。
例 : asmversion="ASM2"
djunitタスクでは、fork属性を削除しました。forkは常に"yes"で実行されます。
このタスクを利用可能にするためにbuild.xmlで、
<taskdef classpath="./lib/djunit.jar" resource="djunittasks.properties"/>
が必要です。
サンプルは
djUnit Downloadからダウンロードできます。
djUnitプラグインのインストールフォルダのlibフォルダにあるjarファイルを、すべて「.lib」フォルダにコピーしておく。
<?xml version="1.0" encoding="Windows-31J"?>
<project name="djUnit" basedir=".">
<taskdef classpath="./lib/djunit.jar" resource="djunittasks.properties"/>
<!-- ./libフォルダに必要なjarファイルをコピーしておく -->
<path id="class.path">
<fileset dir="./lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!--=============== test ===============-->
<target name="test">
<delete dir="./report" />
<mkdir dir="./report" />
<djunit printsummary="yes" targetsrcdir="./src"
virtualmock="yes" coverage="yes" asmversion="asm15"
showoutput="yes" dir=".">
<classpath refid="class.path"/>
<classpath path="./classes"/>
<formatter type="xml"/>
<batchtest todir="./report">
<fileset dir="./classes">
<include name="**/*Test.class"/>
</fileset>
</batchtest>
</djunit>
<junitreport>
<fileset dir="./report">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="./report"/>
</junitreport>
</target>
</project>