2017年8月18日金曜日

maven-surefire-pluginでテスト実行時のjavaを指定する

pomの定義

jmvパラメータにテスト実行時に使用するjavaを指定します。
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <jvm>/opt/java/jdk1.6.0_45/bin/java</jvm>
  </configuration>
</plugin>

動作確認用のテストクラス

public class HogeTest {
    @Test
    public void name() throws Exception {
        System.out.println("System.getProperty(\"java.version\") = " + System.getProperty("java.version"));
    }
}

実行結果

指定したバージョンでテストが実行されていることが確認できます。
$ export JAVA_HOME=/opt/java/jdk1.8.0_141
$ mvn test

********** 省略 **********
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running HogeTest
System.getProperty("java.version") = 1.6.0_45
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.955 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0