对于最新稳定版本,请使用Spring Framework 7.0.1spring-doc.cadn.net.cn

测试的提前支持

本章介绍了Spring对集成测试的提前(AOT)支持, Spring TestContext 框架。spring-doc.cadn.net.cn

测试支持扩展了 Spring 核心的进攻之锤支持,包括 后续专题。spring-doc.cadn.net.cn

  • 构建时检测当前项目中所有使用该项目的集成测试 TestContext 框架用于加载应用上下文.spring-doc.cadn.net.cn

    • 也为基于 JUnit Jupiter 和 JUnit 4 的测试类提供明确支持 作为对TestNG及其他使用Spring核心的测试框架的隐式支持。 测试注释——只要测试是通过JUnit平台运行的测试引擎该项目已注册。spring-doc.cadn.net.cn

  • 构建时AOT处理:每个测试都是独一无二的应用上下文在当前项目中 将刷新以适应进攻的攻击处理spring-doc.cadn.net.cn

  • 运行时AOT支持:在AOT运行模式下执行时,Spring集成测试将实现 使用AOT优化的版本应用上下文它与上下文缓存透明地参与。spring-doc.cadn.net.cn

所有测试默认在AOT模式下都是启用的。不过,你可以选择性地禁用 整个测试类或单个测试方法在AOT模式下通过注释@DisabledInAotMode. 使用 JUnit Jupiter 时,你可以选择性地在 GraalVM 原生环境中启用或禁用测试 图片来源:朱庇特@EnabledInNativeImage@DisabledInNativeImage附注。 注意@DisabledInAotMode当 运行在 GraalVM 原生映像中,类似于 JUnit Jupiter 的@DisabledInNativeImage注解。spring-doc.cadn.net.cn

默认情况下,如果在构建时AOT处理过程中遇到错误,会有一个例外 会被抛弃,整个过程也会立即失败。spring-doc.cadn.net.cn

如果您希望在遇到错误后继续构建时的AOT处理, 你可以禁用失败错误该模式导致错误记录在警告或更详细地表示调试水平。spring-doc.cadn.net.cn

失败错误模式可以通过命令行或构建脚本禁用,方法是设置 一个名为spring.test.aot.processing.failOnErrorfalse.作为 另外,你也可以通过春季房产机制。spring-doc.cadn.net.cn

@ContextHierarchyAOT模式下不支持注释。spring-doc.cadn.net.cn

要在 GraalVM 原生映像中提供测试专用的运行时提示,你需要 以下选项。spring-doc.cadn.net.cn

TestRuntimeHintsRegistrarAPI 作为核心的伴侣RuntimeHintsRegistrar应用程序接口。如果你需要注册全局提示以支持测试 那些不针对特定测试类的,更倾向于实现RuntimeHintsRegistrar通过测试专用的 API 进行测试。spring-doc.cadn.net.cn

如果你实现自定义上下文加载器,必须实现AotContextLoader在 以提供AOT构建时处理和AOT运行时执行支持。注意 然而,Spring Framework 提供的所有上下文加载器实现和 Spring Boot 已经实现了AotContextLoader.spring-doc.cadn.net.cn

如果你实现自定义TestExecutionListener,必须实现AotTestExecutionListener以便参与AOT处理。参见SqlScriptsTestExecutionListener在 这春季测试以模块为例。spring-doc.cadn.net.cn