|
对于最新稳定版本,请使用Spring Framework 7.0.1! |
测试的提前支持
本章介绍了Spring对集成测试的提前(AOT)支持, Spring TestContext 框架。
测试支持扩展了 Spring 核心的进攻之锤支持,包括 后续专题。
-
构建时检测当前项目中所有使用该项目的集成测试 TestContext 框架用于加载
应用上下文.-
也为基于 JUnit Jupiter 和 JUnit 4 的测试类提供明确支持 作为对TestNG及其他使用Spring核心的测试框架的隐式支持。 测试注释——只要测试是通过JUnit平台运行的
测试引擎该项目已注册。
-
-
构建时AOT处理:每个测试都是独一无二的
应用上下文在当前项目中 将刷新以适应进攻的攻击处理。 -
运行时AOT支持:在AOT运行模式下执行时,Spring集成测试将实现 使用AOT优化的版本
应用上下文它与上下文缓存透明地参与。
所有测试默认在AOT模式下都是启用的。不过,你可以选择性地禁用
整个测试类或单个测试方法在AOT模式下通过注释@DisabledInAotMode.
使用 JUnit Jupiter 时,你可以选择性地在 GraalVM 原生环境中启用或禁用测试
图片来源:朱庇特@EnabledInNativeImage和@DisabledInNativeImage附注。
注意@DisabledInAotMode当
运行在 GraalVM 原生映像中,类似于 JUnit Jupiter 的@DisabledInNativeImage注解。
|
默认情况下,如果在构建时AOT处理过程中遇到错误,会有一个例外 会被抛弃,整个过程也会立即失败。 如果您希望在遇到错误后继续构建时的AOT处理,
你可以禁用 这 |
|
这 |
要在 GraalVM 原生映像中提供测试专用的运行时提示,你需要 以下选项。
-
实现自定义
TestRuntimeHintsRegistrar并通过以下方式进行全局注册元军/Spring/aot.factories. -
实现自定义
RuntimeHintsRegistrar并通过以下方式进行全局注册元军/Spring/aot.factories或者在测试类的本地 通过@ImportRuntimeHints. -
有关 Spring 核心运行时提示的详细信息,请参见运行提示 以及注释支持。
|
这 |
如果你实现自定义上下文加载器,必须实现AotContextLoader在
以提供AOT构建时处理和AOT运行时执行支持。注意
然而,Spring Framework 提供的所有上下文加载器实现和
Spring Boot 已经实现了AotContextLoader.
如果你实现自定义TestExecutionListener,必须实现AotTestExecutionListener以便参与AOT处理。参见SqlScriptsTestExecutionListener在
这春季测试以模块为例。