난 그냥 단지 내 응용 프로그램을 배포 할 수 없습니다 테스트를 실행 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.properties
DB를 연결을 정의하는 파일을.
그리고 하나 개 더 질문합니다 ...에서 .gitlab-ci.yml
파일 나는 경로를 둘 필요 .jar
하지만 파일 이름이 매번 변경됩니다 나는 내 응용 프로그램의 버전을 업데이트합니다. 내가 수동으로 변경해야합니까?
이 테스트에 전체 Spring 컨텍스트를 시작으로 주석 (나는 봄 부팅에서 생성 된 표준 시험 생각) @RunWith(SpringRunner.class)
그리고 @SpringBootTest
당신은 데이터 소스를 제공해야합니다. 다음 중 하나를 수행 할 수 있습니다 :
- 당신의 데이터베이스 자격 증명 지정
application.properties
에서을src/test/resources
(내가 모든 테스트에서 프로덕션 데이터베이스에 연결할 수없는 것처럼 당신은 당신의 데이터베이스 서버에서 테스트 데이터베이스를 제공 할 수있다) - 임베디드를 사용하십시오
H2
이 테스트 - 사용 https://www.testcontainers.org/을 당신의 Spring 애플리케이션 테스트를위한 실제와 신선한 데이터베이스를 제공하기 위해
당신의 GitlabCI 질문에 대해서는 : 그냥 사용하는 것은 *
모든 일치하는 .jar
버전에 상관없이 :- build/libs/myApp-*.jar