빌드(jar 패키징) 오류 공유
72
작성한 질문수 31
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.스프링 프로젝트를 생성하면 최초로 만들어지는
// java
@SpringBootTest
public class XXTests {
@Test
void contextLoads() { }
}
// kotlin
@SpringBootTest
class XXTests {
@Test
fun contextLoads() { }
}이 테스트코드도 실패할거에요
그럴때는 해당 클래스 파일을 없애거나
@SpringBootTest 어노테이션을 제거하거나
맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다!
보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데..
재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
답변 2
1
안녕하세요 보키님! 다른 수강생분들도 쉽게 놓칠 수 있는 부분 공유해주셔서 감사합니다ㅎㅎ
강의에서는 3분 15초 쯤에 테스트 파일을 지우는 장면을 넣긴 했으나
빠르게 지나가다보니 다른 수강생분들도 쉽게 놓칠 수 있을 것 같다는 생각이 드네요!
작성해주신 글 덕분에 다른 분들이 도움받을 수 있을 것 같습니다! 감사합니다:D
0
안녕하세요, 인프런 AI 인턴입니다. 보키님.
스프링 프로젝트에서 테스트 코드 실행 시 발생할 수 있는 빌드 오류에 대해 잘 설명해 주셨습니다. 보통 이런 문제는 데이터베이스 연결 설정이 누락되었을 때 발생하는데, 빌드 과정에서 테스트 코드가 실행되면서 데이터 소스 빈을 생성하지 못해 오류가 발생할 수 있습니다.
문제 해결 방법:
테스트 코드 비활성화:
- 빌드 시 발생하는 오류를 방지하기 위해 테스트 코드를 실행하지 않도록 설정할 수 있습니다.
@Disabled어노테이션을 붙이거나,build.gradle파일에서 테스트를 제외하고 빌드할 수 있습니다.
- 빌드 시 발생하는 오류를 방지하기 위해 테스트 코드를 실행하지 않도록 설정할 수 있습니다.
application.properties 설정:
application.properties또는application.yml파일에spring.datasource.url,spring.datasource.username,spring.datasource.password등의 필수 정보를 설정하여 데이터 소스 연결 문제를 해결할 수 있습니다. 하지만 실제 데이터베이스에 대한 연결이 필요 없는 경우, in-memory DB를 사용할 수도 있습니다.
H2 인메모리 DB 사용:
- 프로젝트 개발 초기 단계에서 데이터베이스 구성이 복잡할 경우, H2 같은 인메모리 DB를 사용하여 테스트 환경을 구성할 수 있습니다.
- 프로젝트 개발 초기 단계에서 데이터베이스 구성이 복잡할 경우, H2 같은 인메모리 DB를 사용하여 테스트 환경을 구성할 수 있습니다.
관련 자료를 통해 이 문제에 대한 더 많은 정보를 얻어보세요:
- Testcontainers 사용하여 통합 테스트 환경 구축: Testcontainers는 실제 데이터베이스를 도커 컨테이너로 실행하여 테스트할 수 있게 도와주는 라이브러리로, 테스트 환경에서의 데이터베이스 문제를 해결하는 데 유용합니다.
혹시 추가적인 도움이 필요하시거나 다른 궁금한 사항이 있으시면 추가 질문을 남겨주세요. 관련된 문제 해결에서 겪으신 경험을 공유해주셔서 감사합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
실습을 가상환경에서 해도 따라하는데 지장이 없나요?
0
49
2
쿠버네티스 학습
0
51
1
Docker Desktop 설치 관련 질문드립니다!
0
69
2
섹션 3 (14강) 04:52 분경 yaml 파일 작성에 대한 질문드립니다.
0
87
2
쿠버네티스 다음 강의
0
75
2
html 적용이 되지 않음
0
67
1
ERROR [internal] load metadata for docker.io/library/openjdk:17-jdk
0
131
2
이미지가 없다고 에러가 계속 떠요
0
84
2
Deployment-service 연결 과정에서 오류..?
0
67
2
Secret이 외부 노출을 어떤 식으로 피할 수 있게 하는지
0
70
2
Secret을 활용한 환경변수 분리 강의자료 문의
0
67
2
도커 쿠버네티스 기다림 오류 문제..
0
132
2
쿠버네티스 고급편은 언제 나오나요?
0
86
1
질문있습니다.
0
68
2
pdf 자료에 섹션3 누락
0
70
3
pvc CrashLoopBackOff 문제
0
128
6
AMI 유형
0
65
2
마스터 노드 vs 워커 노드
0
116
2
aws eks --region ap-northeast-2 update-kubeconfig --name kube-practice 권한 거부
0
115
2
30000 Port로 접속이 안됩니다 ㅠㅠ
0
145
3
안녕하세요. 실습 환경 질문드립니다.
0
77
1
50강 빌드파일
0
62
2
Secret 질문
0
111
3
섹션3 16번 강의에서 질문있습니다
0
72
2





