JUnit 4のテストクラスは、mvn testしてもテストクラスがテストされない。どうやら、標準ではJUnit 3の方式で*Testクラスを探しに行ってる?っぽいので、pom.xmlで調整。
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
<includes>
<include>**/*.class</include>
</includes>
<excludes>
<exclude>**/HogeTestRule.class</exclude>
</excludes>
</configuration>
</plugin>
</build>
工夫した点は2つ。
- configulationのargLineでfile.encodingをUTF-8に
- 日本語メソッド名・クラス名・属性名を使っている所があるので、指定しないとエラーになる
- ExternalResourceクラスを継承したテストルールクラスをテスト対象外へ
- includesで全てのクラスを指定してるけど、テストルールはテストしないのでexclude化
これで、JUnit 4を使っていても、Mavenでビルド・テストできる。