Spring boot @SpringBootTest类在同一线程中运行,尽管是并发配置的
我有几个用Spring boot @SpringBootTest类在同一线程中运行,尽管是并发配置的,spring-boot,kotlin,junit5,maven-failsafe-plugin,Spring Boot,Kotlin,Junit5,Maven Failsafe Plugin,我有几个用@SpringBootTest注释的测试类,还有自动配置emockmvc 它们看起来像这样: @SpringBootTest @AutoConfigureMockMvc class ThymeleafFormatIT { @Autowired lateinit var mvc: MockMvc @Test fun `test something` {} } <plugin> <artifactId>maven-fail
@SpringBootTest
注释的测试类,还有自动配置emockmvc
它们看起来像这样:
@SpringBootTest
@AutoConfigureMockMvc
class ThymeleafFormatIT {
@Autowired
lateinit var mvc: MockMvc
@Test
fun `test something` {}
}
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
<executions>
[...]
</executions>
<configuration>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = same_thread
junit.jupiter.execution.parallel.mode.classes.default = concurrent
</configurationParameters>
</properties>
</configuration>
</plugin>
因为有几个测试,目前有五个,所以我想并行运行这些测试类。我想花时间尽可能地运行这些测试
因为我使用Junit 5和Maven,所以我将故障保护插件配置为:
@SpringBootTest
@AutoConfigureMockMvc
class ThymeleafFormatIT {
@Autowired
lateinit var mvc: MockMvc
@Test
fun `test something` {}
}
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
<executions>
[...]
</executions>
<configuration>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = same_thread
junit.jupiter.execution.parallel.mode.classes.default = concurrent
</configurationParameters>
</properties>
</configuration>
</plugin>
maven故障保护插件
2.22.0
[...]
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.mode.default=相同的线程
junit.jupiter.execution.parallel.mode.classes.default=concurrent
如果我现在运行mvn集成测试,我会看到多个Spring容器被启动,但它们是按顺序启动的。此外,测试执行持续时间没有显著变化:添加配置之前,持续时间约为20秒,添加配置之后,持续时间约为19.9秒
我有什么遗漏吗?@springbootest
注释是否强制顺序执行,可能是通过阻塞端口或其他方式?故障保护插件是否没有拾取配置项?JUnit5和failsage是否互不兼容