классы @SpringBootTest выполняются в одном потоке, хотя и настроены одновременно

#spring-boot #kotlin #junit5 #maven-failsafe-plugin

#весенняя загрузка #kotlin #junit5 #maven-failsafe-плагин

Вопрос:

У меня есть несколько тестовых классов, которые помечены @SpringBootTest а также AutoConfigureMockMvc .

Они выглядят так:

 @SpringBootTest
@AutoConfigureMockMvc
class ThymeleafFormatIT {
    @Autowired
    lateinit var mvc: MockMvc

    @Test
    fun `test something` {}
}
  

Поскольку существует несколько таких тестов, в настоящее время пять, я хочу запускать тестовые классы параллельно. Я хочу потратить время, необходимое для выполнения этих тестов, насколько это возможно.

Поскольку я использую Junit 5 и Maven, я настроил свой отказоустойчивый плагин следующим образом:

 <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>
  

Если я запущу сейчас mvn integration-test , я увижу, что загружается несколько контейнеров Spring, но они загружаются последовательно. Кроме того, продолжительность выполнения теста существенно не меняется: до добавления конфигурации продолжительность составляла ~ 20 секунд, после добавления — ~ 19,9 секунды.

Есть ли что-то, чего мне не хватает? @SpringBootTest Аннотация принудительно выполняет последовательное выполнение, возможно, блокируя порт или что-то в этом роде? Не распознает ли отказоустойчивый плагин элементы конфигурации? Являются ли Junit 5 и failsage несовместимыми друг с другом?