JAVA

애플리케이션 테스트 DB 구분

응디 2022. 8. 18. 17:18

docker 사용하여 애플리케이션 DB 생성

# docker 로 postgres 컨테이너 실행
# -e 는 환경변수 설정 POSTGRES_PASSWORD를 pass로 사용하겠다.
# 마지막 postgres가 이미지
docker run --name ndb -p 5432:5432 -e POSTGRES_PASSWORD=pass -d postgres

# docker 컨테이너 들어가기
docker exec -i -t ndb bash

su - postgres 

# db 접속
psql -d postgres -U postgres

 

우리는 애플리케이션에서 postgresql을 사용하고 test에서는 h2 DB를 사용해야한다면?

test 에 관한 설정파일을 따로 만들어줘야한다!

 

1.  test 디렉토리 하위에 resources 폴더를 만들고 거기에 application.properties 파일을 새로 만들어준다.

(이때 아래 이미지 처럼 설정 해줘야 테스트 시 설정파일을 참고한다.)

2. 이때 이전에 main에 있는 application.properties와 공동으로 사용하고 싶은 설정은 main에 있는 설정파일에 다 적고 따로 override 해서 사용할 것은 test 밑에 설정 파일에 작성함

 

3. test 하는 클래스에 아래 어노테이션 붙여주면 된다.

// 기존의 설정파일을 사용것과 더불어 테스트 resource 밑에 설정파일도 동시에 사용해준다.
@ActiveProfiles("test")

 

주의 : 이때 main 의 설정파일 이름과 test의 설정파일 이름을 다르게 해주는게 좋다. 같으면 build 시 overwrite 될수있음

 

main 설정파일 예시
test 설정파일 예시

 

'JAVA' 카테고리의 다른 글

google oauth  (0) 2022.10.06
LocalDate 와 LocalTime  (0) 2022.08.25
spring hateoas  (0) 2022.08.01
spring restdocs 참고  (0) 2022.07.28
parameter를 이용한 test code  (0) 2022.07.26