djUnit を Maven プロジェクトで使う
Eclipse Kepler は C:\eclipse_kepler
にインストールされているとする。
1. Eclipse Kepler に djUnit プラグインをインストールする
2. コマンドプロンプトで
mvn install:install-file -Dfile=C:\eclipse_kepler\plugins\jp.co.dgic.eclipse.jdt.djunit_0.8.6\djunit.jar -DgroupId=jp.co.dgic -DartifactId=djunit -Dversion=0.8.6 -Dpackaging=jar -DgeneratePom=true
を実行する。
3. 自分のユーザーディレクトリの直下の .m2\repository\jp\co\dgic\djunit\0.8.6
に djunit-0.8.6.pom
ができている。これを次のように修正する。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jp.co.dgic</groupId> <artifactId>djunit</artifactId> <version>0.8.6</version> <description>POM was created from install:install-file</description> <dependencies> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>oro</groupId> <artifactId>oro</artifactId> <version>2.0.8</version> </dependency> </dependencies> </project>
ここからは Eclipse Mars で作業。まずは普通に Maven のプロジェクトを作る。*1
3. pom.xml
の /project/build/plugins
要素に Surefire Plugin の記述を追加。
<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <argLine>-noverify -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} -Djp.co.dgic.eclipse.virtualmock.ignore.library=false</argLine> <useSystemClassLoader>true</useSystemClassLoader> <reuseForks>false</reuseForks> </configuration> </plugin>
argLine
要素の中身は 1 行で書く。
4. pom.xml
の /project/dependencies
要素に以下を追加*2。
<dependency> <groupId>jp.co.dgic</groupId> <artifactId>djunit</artifactId> <version>0.8.6</version> <scope>test</scope> </dependency>
これでとりあえず動きます。出力の日本語が文字化けするのはどうにかならんかにゃー。一応回避方法(?)はあるけど。
なお、残念ながら Jcoverage は現在は使えない模様(昔は Maven 用の Jcoverage プラグインがあったらしい)。