Эта библиотека позволяет упростить интеграционное тестирование с помощью Spring Boot
.
-
Автоматическое разворачивание Postgresql с рандомной БД и на рандомном порту, что решает проблему разворачивания отдельной БД для тестирования с возможностью разворачивания БД через Docker.
-
Автоматическое подключение REST прокси клиентов по рандомному свободному порту, что решает проблему явного указания свободного порта при большом кол-ве тестов.
-
Выключает по умолчанию конфигурацию через Consul.
Для подключения добавьте зависимость:
<dependency>
<groupId>net.n2oapp.platform</groupId>
<artifactId>n2o-platform-starter-test</artifactId>
</dependency>
и аннотацию @DefinePort над тестовым классом
@RunWith(SpringRunner.class)
@SpringBootTest(classes = <YourSpringBootMainClass>.class,
properties = {
"cxf.jaxrs.client.classes-scan=true",
"cxf.jaxrs.client.classes-scan-packages=<your.package>",
"cxf.jaxrs.client.address=http://localhost:${server.port}/<your.rest.path>",
},
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@DefinePort
public class DefinePortTest {
...
}
В этом случае поднимутся сервер и клиент на произвольном порту.
Системные требования для использования такого подхода.
Добавьте зависимость:
<dependency>
<groupId>net.n2oapp.platform</groupId>
<artifactId>n2o-platform-starter-test</artifactId>
</dependency>
Над классом теста указываете аннотацию EnableTestcontainersPg:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@EnableTestcontainersPg
public class TestcontainersPgTest {
...
}
Note
|
Создастся DataSource spring-bean с подключением с супер пользователем к БД с сгенерированным названием. |
Note
|
На данный момент возможно использование Docker образа inovus/postgres с тегами 10-textsearch-ru, 11-textsearch-ru, 12-textsearch-ru. Тег Docker образа задаётся настройкой testcontainers.pg.version с возможными значениями 10/11/12 (по умолчанию 12). |