あんまり使わないので、たまに使った時にコロッと忘れていてドハマりしたのでメモとして書いておきます。
Apache Mavenでintegration-test
やverify
ゴールを実行する時にインテグレーションテストを行いたい場合は、Maven Failsafe Pluginの
設定が必要です。
具体的にはexecution
のgoal
にintegration-test
やverify
を含めておく必要があります(実際にはintegration-test
だけあれば十分ですが)。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin>
定義しないとダメですし、こんな感じでMaven Failsafe Pluginだけを書いていても動きません。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>3.5.2</version> </plugin>
ちゃんとexecution
とgoal
を書く必要があります。
Maven Surefire Pluginのように、デフォルトで動くように組み込まれていると思いこんでいると全然動かなくて「なんでだっけ???」
となりました…。
こちらのページの最初に書いてあるので、ちゃんとドキュメントを読みましょうということですね。
確認環境。
$ java --version openjdk 21.0.5 2024-10-15 OpenJDK Runtime Environment (build 21.0.5+11-Ubuntu-1ubuntu124.04) OpenJDK 64-Bit Server VM (build 21.0.5+11-Ubuntu-1ubuntu124.04, mixed mode, sharing) $ mvn --version Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937) Maven home: $HOME/.sdkman/candidates/maven/current Java version: 21.0.5, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 Default locale: ja_JP, platform encoding: UTF-8 OS name: "linux", version: "6.8.0-49-generic", arch: "amd64", family: "unix"