-
- Notifications
You must be signed in to change notification settings - Fork 1.6k
Upgrading to JUnit 5.13
Marc Philipp edited this page Jun 6, 2025 · 7 revisions
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$IndicativeSentencesorg.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfoorg.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethodsorg.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptororg.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptororg.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Modeorg.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfoorg.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContextorg.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValueorg.junit.platform.launcher.core.DiscoveryIssueNotifierorg.junit.platform.launcher.core.HierarchicalOutputDirectoryProviderorg.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfoorg.junit.platform.launcher.core.LauncherPhaseorg.junit.platform.suite.engine.DiscoverySelectorResolverorg.junit.platform.suite.engine.SuiteTestDescriptor$DiscoveryIssueForwardingListenerorg.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods
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(",")}") } } }<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>