🐕

GradleにおけるJUnit 5.12.0からの注意点

2025/03/04に公開

TL;DR

junit 5.12.0以上にあげるときは、testRuntimeOnly("org.junit.platform:junit-platform-launcher") を追加するようにしてください。(BOMを使っているであろうという前提でversionは省略してます)

追加しないとtest taskが実行できないのですぐに気付けると思います。

Why

明示的に junit-platform-launcherへの依存関係を指定しない場合、Gradleはバンドルされたバージョンを暗黙的に使用します。Gradle 8.13の時点では、junit-platform-launcher 1.8.2が使われます。(ちなみに今の最新は1.12.0です)

junit 5.12はjunit-platform-launcher 1.8.2とは互換性がなくなってしまっているため、結果としてテストを実行することができなくなってしまいました。

ちなみにGradleではこういった可能性に気づいていたため、Gradle 8からjunit-platform-launcherを明示的に指定しましょう!というガイドを出していたようです。
https://docs.gradle.org/8.12/userguide/upgrading_version_8.html#test_framework_implementation_dependencies

Ref

Discussion