SpringBoot и GitLab CI для запуска тестов - PullRequest
0 голосов
/ 04 сентября 2018

Я бы хотел использовать GitLab CI только для запуска теста, а не для развертывания моего приложения. Мне удается собрать этот .yml файл:

image: java:8

stages:
  - build
  - test

build:
  stage: build
  script: ./gradlew build
  artifacts:
    paths:
      - build/libs/myApp-4.0.0-SNAPSHOT.jar

unitTests:
  stage: test
  script:
    - ./gradlew test

И в конвейере GitLab я получаю следующую ошибку:

ar.com.sebasira.myApp.myAppApplicationTests> contextLoads FAILED java.lang.IllegalStateException Вызывается: org.springframework.beans.factory.BeanCreationException Вызывается: org.springframework.beans.BeanInstantiationException Вызывается: org.springframework.beans.factory.BeanCreationException Вызывается: org.springframework.beans.BeanInstantiationException Вызывается: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException

Полагаю, это может быть связано с базой данных, верно? Мне нужно предоставить эту базу данных с учетными данными на моем сервере, где находится бегун?

Если так, как мне это сделать? В настоящее время я использую файл application.properties для определения соединения с БД.

И еще один вопрос ... в файле .gitlab-ci.yml мне нужно указать путь к .jar, но это имя файла будет меняться при каждом обновлении версии моего приложения. Нужно ли менять вручную?

1 Ответ

0 голосов
/ 04 сентября 2018

Поскольку вы запускаете весь контекст Spring с этим тестом (я думаю, что это сгенерированный стандартный тест из Spring Boot) с аннотациями @RunWith(SpringRunner.class) и @SpringBootTest, вы должны предоставить источник данных. Вы можете сделать одно из следующего:

  • Укажите учетные данные базы данных в application.properties в src/test/resources (вы можете предоставить тестовую базу данных на сервере базы данных, поскольку я не буду подключаться к вашей производственной базе данных при каждом тесте)
  • Используйте встроенный H2 для этого теста
  • Используйте https://www.testcontainers.org/, чтобы предоставить реальную и свежую базу данных для вашего теста приложения Spring

Относительно вашего вопроса GitlabCI: просто используйте *, чтобы сопоставить любой .jar независимо от того, какая версия: - build/libs/myApp-*.jar

...