此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
并行测试执行
Spring TestContext 框架为并行执行测试提供了基本支持 在单个 JVM 中。通常,这意味着大多数测试类或测试方法都可以 并行运行,无需对测试代码或配置进行任何更改。
有关如何设置并行测试执行的详细信息,请参阅您的文档 测试框架、构建工具或 IDE。 |
请记住,在测试套件中引入并发可能会导致 意外的副作用、奇怪的运行时行为以及间歇性失败的测试或 看似随机。因此,Spring 团队提供了以下一般准则 何时不并行运行测试。
如果测试符合以下条件,请勿并行运行测试:
-
使用 Spring Framework 的
@DirtiesContext
支持。 -
使用 Spring Framework 的
@MockitoBean
或@MockitoSpyBean
支持。 -
使用 Spring Boot 的
@MockBean
或@SpyBean
支持。 -
使用 JUnit Jupiter 的
@TestMethodOrder
支持或任何测试框架功能 旨在确保测试方法按特定顺序运行。但请注意, 如果整个测试类并行运行,则不适用。 -
更改共享服务或系统(如数据库、消息代理、 文件系统等。这适用于嵌入式和外部系统。
如果并行测试执行失败,并出现异常,指出 这可能是由于使用 |
只有在以下情况下,Spring TestContext框架中的并行测试执行才有可能
基础TestContext 实现提供了一个复制构造函数,如
javadoc 的TestContext .这DefaultTestContext Spring 中使用提供了这样的构造函数。但是,如果您使用
第三方库,提供自定义TestContext 实现时,您需要
验证它是否适合并行测试执行。 |