|
对于最新的稳定版本,请使用 Spring Framework 7.0.6! |
测试的预先编译支持
本章涵盖Spring TestContext框架对使用提前编译(AOT)的集成测试的支持。
测试支持扩展了Spring的核心AOT支持,并包含以下功能。
-
构建时检测当前项目中所有使用TestContext框架加载
ApplicationContext的集成测试。-
为基于JUnit Jupiter和JUnit 4的测试类提供明确支持,同时隐式支持TestNG及其他使用Spring核心测试注解的测试框架——前提是测试需通过当前项目已注册的JUnit Platform
TestEngine运行。
-
-
构建时AOT处理:每个唯一的测试
ApplicationContext在当前项目中将会刷新以进行AOT处理。 -
运行时AOT支持:在AOT运行时模式下执行时,Spring集成测试将使用经过AOT优化的
ApplicationContext,该优化器可与上下文缓存无缝协作。
|
|
要为GraalVM本机镜像中的使用提供测试专用的运行时提示,可使用以下选项。
-
实现一个自定义的
TestRuntimeHintsRegistrar并通过META-INF/spring/aot.factories进行全局注册。 -
实现自定义
RuntimeHintsRegistrar并通过META-INF/spring/aot.factories全局注册,或通过@ImportRuntimeHints在测试类上局部注册。 -
有关Spring核心运行时提示和注解支持的详细信息,请参阅运行时提示。
|
|
如果您实现自定义的 ContextLoader,则必须实现
AotContextLoader 接口,
才能提供 AOT 构建时处理和 AOT 运行时执行支持。但请注意,
Spring Framework 和 Spring Boot 提供的所有上下文加载器实现均已实现 AotContextLoader。
如果您实现了一个自定义的 TestExecutionListener,它必须实现
AotTestExecutionListener
才能参与AOT处理。有关示例,请参见
spring-test 模块中的 SqlScriptsTestExecutionListener。