#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 несовместимыми друг с другом?