djUnit 自体、2011年頃から更新されていないため、もはや需要がないかもしれませんが、必要に迫られて調べました。
Eclipse 4.5 (mars)
Eclipse 4.x 以降ではプラグインの仕組みが変更されているようで、古い形式のプラグインが動作しません。よって、古い形式のプラグインを動作させるための Eclipse プラグインをインストールする必要があります。
- Help > Install New Software…
- リポジトリに http://download.eclipse.org/eclipse/updates/4.5 を追加
Eclipse Tests, Tools, Examples, and Extras
の
Eclipse 2.0 Style Plugin Support
をチェックしてインストール
- ダウンロードサイト から
jp.co.dgic.eclipse.jdt.djunit_3.5.x_0.8.6.zip
をダウンロード - 展開して作成されたフォルダを Eclipse の plugins フォルダにコピー
- plugin.xml の plugin > requires に記載されている
<import plugin="org.eclipse.core.boot"/>
をコメントアウト
Maven2
pom.xml に JUnit, djUnit, asm, oro の依存関係を追加。(詳細は省略)
ここでは Maven Surefire Plugin を使用します。pom.xml に以下の設定を追加。
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Djava.system.class.loader=jp.co.dgic.testing.common.DJUnitClassLoader -Djp.co.dgic.eclipse.virtualmock.usevirtualmock=true -Djp.co.dgic.eclipse.coverage.usecoverage=false -Djp.co.dgic.eclipse.project.source.dir=${project.build.sourceDirectory}</argLine> </configuration> </plugin> </plugins> </build>
とりあえず、手元の環境で $ mvn test
してテストがパスするようになりました。
余談
テストコードから getClass().getResource(fileName)
でファイルを読み込む場合、テストクラスと同じ階層にファイルを配置すると Maven2 からテストを実行した際に正常に読み込まれません。src/main/resources
下に同様のパッケージ階層を作成してファイルを配置する必要があります。
または、ClassLoader.getSystemResourceAsStream("foo/bar/filename")
でパッケージを指定してファイルを読み込みます。