Skip to content

Mismatch junit-jupiter version with maven-surefire-plugin&maven-failsafe-plugin #45693

@feddevanderlist

Description

@feddevanderlist

When using springboot-starter-parent 3.4.5 or 3.4.6 the versions of junit-jupiter 5.11.4 and the junit-jupiter version of maven-surfire-plugin (5.12.2) mismatch.

This can create issues because in the update to junit-jupiter 5.12.x they introduced a new class. See stacktrace below.

Steps to guarantee reproduction:
Include springboot-starter-parent 3.4.5 or 3.4.6
In your maven-failsafe-plugin or maven-surfire-plugin depend on

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
   <dependencies>
      <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-engine</artifactId>
          <version>${junit-jupiter.version}</version>
      </dependency>
  </dependencies>
</plugin>

Possible solutions

  • Pin maven-surfire-plugin and maven-failsafe-plugin to version 3.5.2
  • Update junit-jupiter to 5.12.x
org/junit/platform/engine/reporting/OutputDirectoryProvider
java.lang.NoClassDefFoundError: org/junit/platform/engine/reporting/OutputDirectoryProvider
	at org.apache.maven.surefire.junitplatform.TestPlanScannerFilter.accept(TestPlanScannerFilter.java:47)
	at org.apache.maven.surefire.api.util.DefaultScanResult.applyFilter(DefaultScanResult.java:87)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.scanClasspath(JUnitPlatformProvider.java:144)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.reporting.OutputDirectoryProvider

Metadata

Metadata

Assignees

No one assigned

    Labels

    for: external-projectFor an external project and not something we can fixstatus: declinedA suggestion or change that we don't feel we should currently apply

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions