Skip to content

Latest commit

 

History

History
79 lines (63 loc) · 3.26 KB

README.adoc

File metadata and controls

79 lines (63 loc) · 3.26 KB

Возможности

Эта библиотека позволяет упростить интеграционное тестирование с помощью 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 {
    ...
}

В этом случае поднимутся сервер и клиент на произвольном порту.

Разворачивание Postgresql c использованием Docker

Подключение

Системные требования для использования такого подхода.

Добавьте зависимость:

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