以下の内容はhttps://wrongwrong163377.hatenablog.com/entry/2025/02/03/174800より取得しました。


【Maven】maven-surefire-pluginはデフォルトだと特定パターンに名前が合致するクラスのテストしか実行しない

TL;DR

  • maven-surefire-pluginはデフォルトだと特定の命名規則に合致するテストクラスしか実行しない
  • 実行されないテストについては、クラス名を変えるか、パッケージ単位指定などを行う必要がある

状況

jackson-module-kotlinのメンテ中、verifyコマンドでは一部テストが実行されないことに気付きました。

github.com

調査した所、以下の記述に辿り着きました。
特定パターンに合致しない名前のクラスは、例え@Testアノテーションが付与されたメソッドが有ったとしてもテストされません。

By default, the Surefire Plugin will automatically include all test classes with the following wildcard patterns:

  • "**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
  • "**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
  • "**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
  • "**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".

maven.apache.org

対処

量が多かったこともあってパッケージ一括指定にしました。

<includes>
  <include>com.fasterxml.jackson.module.kotlin.**</include>
</includes>

github.com

雑感

CIで実行されてないテストが有ると分かった時は正直ものすごく肝が冷えました。

自分がメンテナになる前の段階からこの状態になっているテストがいくつか有ったようで、そのまま拡充してしまっていました。
また、ローカルだとIntellijの単体実行や、自分で設定を書いて一括実行していたので気付かなかったです。

ただ、ローカルでちゃんと実行してはいたので、2.x系について致命的な状況が生じていなかったのは良かったです(3.x系には問題を出してしまいましたが、、、)。




以上の内容はhttps://wrongwrong163377.hatenablog.com/entry/2025/02/03/174800より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14