Skip to content

Upgrading to JUnit 5.13

Marc Philipp edited this page May 26, 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:

  • 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.commons.util.KotlinReflectionUtils
  • 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.SuiteTestDescriptor$LifecycleMethods

Gradle

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.commons.util.KotlinReflectionUtils",
	"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.SuiteTestDescriptor\$LifecycleMethods",
)

graalvmNative {
	binaries {
		named("test") {
			buildArgs.add("--initialize-at-build-time=${initializeAtBuildTime.joinToString(",")}")
		}
	}
}
Clone this wiki locally