Skip to content

Migrate test stack to JUnit 6 (align Jupiter + Platform via junit-bom) #36

Open

Description

@MarketDataDev03

Migrate test stack to JUnit 6 (align Jupiter + Platform via junit-bom)

Body:

Context

Dependabot opened #28 bumping org.junit.platform:junit-platform-launcher from
1.11.4 to 6.1.1 — but only the Platform key, leaving Jupiter on 5.11.4.

JUnit 6 is released in lockstep (Platform 6 + Jupiter 6 + Vintage 6). Raising only
the launcher creates an unsupported version skew: Gradle's "highest version wins"
conflict resolution silently pulls junit-platform-commons/-engine 6.x underneath
a 5.x Jupiter engine. #28 happened to pass CI on JDK 17, but the combination is
fragile and not a supported way to adopt JUnit 6.

Root cause of the partial bump: libs.versions.toml keeps two separate keys
(junit for Jupiter, junit-platform for the launcher), so Dependabot bumps each
artifact independently.

#28 is being ignored for now (@dependabot ignore this major version); this issue
tracks doing the migration properly.

Scope / tasks

  • Adopt org.junit:junit-bom so Jupiter + Platform versions are always aligned
    from a single source.
  • Bump the whole stack to JUnit 6.x (Jupiter and Platform together).
  • Confirm Java baseline — JUnit 6 requires Java 17+ (repo already mandates 17). ✅
  • Review JUnit 6 breaking changes (assertions API, extension model, removed
    deprecations) and update tests as needed.
  • Validate on the full matrix {17, 21, 25} (unit + integration).
  • Collapse the split junit / junit-platform keys in libs.versions.toml
    (via the BOM) so Dependabot can't produce a partial bump again.
  • After it ships, remove the ignore / @dependabot unignore so future 6.x
    patches flow normally.

Why deferred

This is a deliberate major migration, not a one-line bump. Merging Dependabot's
partial bump would ship an unsupported Platform-6 / Jupiter-5 configuration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions