Skip to content

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

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.

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