読者です 読者をやめる 読者になる 読者になる

Maven経由で実行されるテストにシステムプロパティを渡す

Maven 2.1.0 not passing on system properties to Java virtual machine - Stack Overflow
MavenSurefire plug-inからJUnitのテストケースを実行する際にシステムプロパティを渡す方法です。システムプロパティは以下のようなコードで取得できます。

System.getProperty("foo")

通常のJavaプログラムであれば、java.exeを実行する際の引数に以下のように指定することができます。

-Dfoo=bar

ただ、Maven経由で実行するテストケースでは、以下のようにmavenを実行しても、

mvn -Dfoo=bar test

Surefire PluginのforkModeの影響で、取得できない場合があるようです。
この場合には、pom.xmlSystemPropertiesを追加するか、mvnの実行時に以下のような形式で引数として追加すれば取得できます。

mvn -DargLine="-Dfoo=bar" test