此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.1.10! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.1.10! |
本章介绍了 Spring 的 Ahead of Time (AOT) 对集成测试的支持,使用 Spring TestContext 框架。
测试支持扩展了 Spring 的核心 AOT 支持,包括 以下功能。
-
对当前项目中使用 TestContext 框架加载 .
ApplicationContext
-
为基于 JUnit Jupiter 和 JUnit 4 的测试类提供显式支持 作为对 TestNG 和其他使用 Spring 核心的测试框架的隐式支持 测试注解 — 只要测试是使用为当前项目注册的 JUnit 平台运行的。
TestEngine
-
-
构建时 AOT 处理:当前项目中的每个唯一测试 将刷新以进行 AOT 处理。
ApplicationContext
-
运行时 AOT 支持:在 AOT 运行时模式下执行时,Spring 集成测试将 使用经过 AOT 优化的上下文缓存透明参与。
ApplicationContext
AOT 模式下目前不支持注释。 |
AOT 模式下目前不支持注释。 |
要提供特定于测试的运行时提示以在 GraalVM 本机映像中使用,您有 以下选项。
-
实现自定义
TestRuntimeHintsRegistrar
并通过 全局注册它。META-INF/spring/aot.factories
-
实现自定义
RuntimeHintsRegistrar
,并通过测试类或本地在测试类上全局注册它 通过@ImportRuntimeHints
。META-INF/spring/aot.factories
-
使用
@Reflective
或@RegisterReflectionForBinding
批注测试类。 -
有关 Spring 核心运行时提示的详细信息,请参阅运行时提示 和注释支持。
该 API 充当核心 API 的配套工具。如果需要注册全局提示以进行测试支持
不特定于特定测试类的,有利于实现特定于测试的 API。 |
该 API 充当核心 API 的配套工具。如果需要注册全局提示以进行测试支持
不特定于特定测试类的,有利于实现特定于测试的 API。 |
如果实现自定义,则必须在
提供 AOT 构建时处理和 AOT 运行时执行支持。注意
但是,Spring Framework 提供的所有上下文加载器实现和
Spring Boot 已经实现了 。
ContextLoader
AotContextLoader
如果实现自定义,则必须实现 AotTestExecutionListener
才能参与 AOT 处理。请参阅
模块为例。TestExecutionListener
SqlScriptsTestExecutionListener
spring-test