Интеграционные тесты Gitlab CI для проекта Spring Maven с базой данных PSQL в контейнере DockerJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Интеграционные тесты Gitlab CI для проекта Spring Maven с базой данных PSQL в контейнере Docker

Сообщение Anonymous »

tldr: < /strong>
У меня есть приложение для пружинного загрузки, которое локально соединяется с базой данных в контейнере Docker и хочу провести некоторые интеграционные тесты в конвейере CI, но не могу подключиться к DB, когда я запускаю свой gitlab Pipeline. Твоид. Это (инициализировать самые основные таблицы) А затем он должен выполнить тесты Maven для проверки приложения. Следуя файлу .gitlab-ci.yml у меня в настоящее время:
variables:
DOCKERFILE_DIR: src/main/resources/docker

stages:
- .pre
- build
- test

Build DB docker-container:
stage: .pre
image: docker:28.0.4
rules:
- changes:
- $DOCKERFILE_DIR/**
services:
- docker:28.0.4-dind
script:
- cd $DOCKERFILE_DIR
- echo $CI_REGISTRY_PASSWORD | docker login $CI_REGISTRY -u $CI_REGISTRY_USER --password-stdin
- docker build -f Dockerfile -t $CI_REGISTRY_IMAGE/cookbook-db .
- docker push $CI_REGISTRY_IMAGE/cookbook-db

mvn compile:
stage: build
image: maven:3.9.9-eclipse-temurin-21
script:
- mvn clean compile
artifacts:
paths:
- target/

mvn test:
stage: test
image: maven:3.9.9-eclipse-temurin-21
services:
- name: $CI_REGISTRY_IMAGE/cookbook-db
alias: cookbook-db
script:
- mvn verify -Dspring.profiles.active=ci
artifacts:
when: always
reports:
junit: target/surefire-reports/*.xml
< /code>
и мое приложение. Прозрачные продукты следующие (2 отдельные файлы, один базовый и один для Ci-профиля для выполнения правильного db) < /p>
Application.properties
>spring.datasource.url=jdbc:postgresql://localhost:5432/cookbook-db
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
< /code>
application-ci.properties (для переопределения URL-адреса данных для трубопровода) < /p>
spring.datasource.url=jdbc:postgresql://cookbook-db:5432/cookbook-db
< /code>
Теперь, если трубопровод работает, он не работает на тестовой стадии Wihtin в тестах интеграции (модульные тесты выполняются идеально). Ошибка, которую я получаю, заключается в том, что не может быть сделано никакого соединения с метаданными запроса, и поэтому не может быть установлено никакого соединения с БД, а интеграционные тесты не сбои, потому что контекст приложения не может быть запущен.


Подробнее здесь: https://stackoverflow.com/questions/795 ... e-in-docke
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»