Skip to content

Upgrading to JUnit 5.13

Marc Philipp edited this page Jun 6, 2025 · 7 revisions

GraalVM Native Build Tools

If you're using GraalVM's Native Build Tools in a version prior to 0.11.0, you will need to adjust your build to include the following classes with --initialize-at-build-time:

Important

The steps below are not necessary if you're using Native Build Tools in version 0.11.0 or later.

  • org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences
  • org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo
  • org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods
  • org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor
  • org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor
  • org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode
  • org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1
  • org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo
  • org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext
  • org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue
  • org.junit.platform.launcher.core.DiscoveryIssueNotifier
  • org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider
  • org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo
  • org.junit.platform.launcher.core.LauncherPhase
  • org.junit.platform.suite.engine.DiscoverySelectorResolver
  • org.junit.platform.suite.engine.SuiteTestDescriptor$DiscoveryIssueForwardingListener
  • org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods

Gradle

plugins {	id("org.graalvm.buildtools.native") version "0.10.6" } val initializeAtBuildTime = listOf( "org.junit.jupiter.api.DisplayNameGenerator\$IndicativeSentences", "org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$ClassInfo", "org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$LifecycleMethods", "org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor", "org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor", "org.junit.jupiter.engine.descriptor.DynamicDescendantFilter\$Mode", "org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector\$1", "org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor\$MethodInfo", "org.junit.jupiter.engine.discovery.ClassSelectorResolver\$DummyClassTemplateInvocationContext", "org.junit.platform.engine.support.store.NamespacedHierarchicalStore\$EvaluatedValue", "org.junit.platform.launcher.core.DiscoveryIssueNotifier", "org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider", "org.junit.platform.launcher.core.LauncherDiscoveryResult\$EngineResultInfo", "org.junit.platform.launcher.core.LauncherPhase", "org.junit.platform.suite.engine.DiscoverySelectorResolver", "org.junit.platform.suite.engine.SuiteTestDescriptor\$DiscoveryIssueForwardingListener", "org.junit.platform.suite.engine.SuiteTestDescriptor\$LifecycleMethods", ) graalvmNative {	binaries {	named("test") {	buildArgs.add("--initialize-at-build-time=${initializeAtBuildTime.joinToString(",")}")	}	} }

Maven

<plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <version>0.10.6</version> <extensions>true</extensions> <executions> <execution> <id>test-native</id> <goals> <goal>test</goal> </goals> <phase>test</phase> <configuration> <buildArgs> <buildArg>--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo</buildArg> <buildArg>--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.LauncherPhase</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.suite.engine.DiscoverySelectorResolver</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$DiscoveryIssueForwardingListener</buildArg> <buildArg>--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods</buildArg> </buildArgs> </configuration> </execution> </executions> </plugin>
Clone this wiki locally