CLOVER🍀

That was when it all began.

Apache Mavenでインテグレーションテストを行う時は、Maven Failsafe Pluginの設定を忘れないこと

あんまり使わないので、たまに使った時にコロッと忘れていてドハマりしたのでメモとして書いておきます。

Apache Mavenintegration-testverifyゴールを実行する時にインテグレーションテストを行いたい場合は、Maven Failsafe Pluginの
設定が必要です。

具体的にはexecutiongoalintegration-testverifyを含めておく必要があります(実際には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>

ちゃんとexecutiongoalを書く必要があります。

Maven Surefire Pluginのように、デフォルトで動くように組み込まれていると思いこんでいると全然動かなくて「なんでだっけ???」
となりました…。

こちらのページの最初に書いてあるので、ちゃんとドキュメントを読みましょうということですね。

Maven Failsafe Plugin – Usage

確認環境。

$ 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"