Skip to content

micrometer-observation-test brings unnecessary JUnit dependencies, leading to conflicts #6012

@snicoll

Description

@snicoll

Courtesy of @wilkinsona

The micrometer-observation-test has a too broad (api) dependency on JUnit:

This leads to a number of unnecessary dependencies brought to consumers

+--- io.micrometer:micrometer-observation-test -> 1.15.0-SNAPSHOT
|    +--- io.micrometer:micrometer-observation:1.15.0-SNAPSHOT (*)
|    +--- org.assertj:assertj-core:3.27.3 -> 3.25.3
|    |    \--- net.bytebuddy:byte-buddy:1.14.11
|    +--- org.junit.jupiter:junit-jupiter:5.12.0
|    |    +--- org.junit:junit-bom:5.12.0 -> 5.11.0 (*)
|    |    +--- org.junit.jupiter:junit-jupiter-api:5.12.0
|    |    |    +--- org.junit:junit-bom:5.12.0 -> 5.11.0 (*)
|    |    |    +--- org.opentest4j:opentest4j:1.3.0
|    |    |    \--- org.junit.platform:junit-platform-commons:1.12.0
|    |    |         \--- org.junit:junit-bom:5.12.0 -> 5.11.0 (*)
|    |    +--- org.junit.jupiter:junit-jupiter-params:5.12.0
|    |    |    +--- org.junit:junit-bom:5.12.0 -> 5.11.0 (*)
|    |    |    \--- org.junit.jupiter:junit-jupiter-api:5.12.0 (*)
|    |    \--- org.junit.jupiter:junit-jupiter-engine:5.12.0
|    |         +--- org.junit:junit-bom:5.12.0 -> 5.11.0 (*)
|    |         +--- org.junit.platform:junit-platform-engine:1.12.0
|    |         |    +--- org.junit:junit-bom:5.12.0 -> 5.11.0 (*)
|    |         |    +--- org.opentest4j:opentest4j:1.3.0
|    |         |    \--- org.junit.platform:junit-platform-commons:1.12.0 (*)
|    |         \--- org.junit.jupiter:junit-jupiter-api:5.12.0 (*)

I've added the dependency on a project that uses JUnit 5.11.0. As soon as this module is added in test scope, my tests aren't running anymore. The gradle test runner is failing with

OutputDirectoryProvider not available; probably due to unaligned versions of the junit-platform-engine and junit-platform-launcher jars

This can be reproduced on the Spring-WS project in a feature branch.

The following fixes the issue on that particular project:

testImplementation("io.micrometer:micrometer-observation-test") {
      exclude(group: "org.junit.jupiter")
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions