실행 테스트에 SpringBoot 및 GitLab CI

Sebsir :

난 그냥 단지 내 응용 프로그램을 배포 할 수 없습니다 테스트를 실행 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 파이프 라인 I에 다음과 같은 오류가 발생합니다 :

에 의한 ar.com.sebasira.myApp.myAppApplicationTests> contextLoads 실패 java.lang.IllegalStateException : org.springframework.beans.factory :에 의한 org.springframework.beans.BeanInstantiationException : org.springframework.beans.factory.BeanCreationException는에 의해 발생. BeanCreationException는에 의해 발생 : org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException : org.springframework.beans.BeanInstantiationException에 의한

난 지금이이 데이터베이스에 관련이있을 수 같은데요? 나는 주자가 내 서버에서 자격 증명을 사용하여 해당 데이터베이스를 제공해야합니까?

그렇다면, 어떻게 그것을해야합니까? I'currently 사용하여 application.propertiesDB를 연결을 정의하는 파일을.

그리고 하나 개 더 질문합니다 ...에서 .gitlab-ci.yml파일 나는 경로를 둘 필요 .jar하지만 파일 이름이 매번 변경됩니다 나는 내 응용 프로그램의 버전을 업데이트합니다. 내가 수동으로 변경해야합니까?

rieckpil :

이 테스트에 전체 Spring 컨텍스트를 시작으로 주석 (나는 봄 부팅에서 생성 된 표준 시험 생각) @RunWith(SpringRunner.class)그리고 @SpringBootTest당신은 데이터 소스를 제공해야합니다. 다음 중 하나를 수행 할 수 있습니다 :

  • 당신의 데이터베이스 자격 증명 지정 application.properties에서을 src/test/resources(내가 모든 테스트에서 프로덕션 데이터베이스에 연결할 수없는 것처럼 당신은 당신의 데이터베이스 서버에서 테스트 데이터베이스를 제공 할 수있다)
  • 임베디드를 사용하십시오 H2이 테스트
  • 사용 https://www.testcontainers.org/을 당신의 Spring 애플리케이션 테스트를위한 실제와 신선한 데이터베이스를 제공하기 위해

당신의 GitlabCI 질문에 대해서는 : 그냥 사용하는 것은 *모든 일치하는 .jar버전에 상관없이 :- build/libs/myApp-*.jar

추천

출처http://43.154.161.224:23101/article/api/json?id=208803&siteId=1