• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

test파일의 application.yml 내용 없는경우

23.03.30 02:45 작성 조회수 835

0

test디렉토리의 resouces패키지를 만들고, 그 안에 application.yml 을 생성해서 인메모리모드를 보여주셨습니다.

아무 코드가 없는 백지상태여도 인메모리모드로 돌아간다고 하셨는데요,

그래도 내용만 빌 뿐이지, 인메모리 환경을 위해서는 꼭 application.yml파일이 test디렉토리의 해당경로에 존재해야하는게 맞나요?

답변 1

답변을 작성해보세요.

1

y2gcoder님의 프로필

y2gcoder

2023.03.30

안녕하세요, gdf4013 님. 공식 서포터즈 y2gcoder 입니다.

src/test/resources 아래에 application.yml에 내용을 넣어주지 않고 application.yml을 넣어준 이유는 쉽게 말씀드리면 test 패키지 밑의 테스트 클래스들을 실행할 때 test/resources/application.yml을 사용하기 위해서입니다. 설정 파일 우선순위와 관련이 있는데, 테스트할 때 src/test/resources/application.yml이 없으면 src/main/resources/application.yml 의 설정 정보로 테스트하기 때문에 실제 애플리케이션 실행시 사용되는 DB를 이용하게 되기 때문입니다.

src/test/resources/application.yml을 빈 값으로 넣어둔 이유는 스프링 부트에 h2 database 라이브러리를 추가했을 때는 기본값이 인메모리 모드로 실행하는 것이기 때문입니다. 그렇기 때문에 만약 실제 애플리케이션을 실행할 때도 인메모리 DB를 사용하고 싶다고 하시면 application.yml에서 db 설정하는 url, username, password 같은 부분을 적지 않으시면 마찬가지로 인메모리 모드로 H2 DB를 이용하실 수 있습니다 :)

감사합니다.