Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- DP
- boj10942
- boj7579
- BFS
- boj_15685
- nestedjson
- DFS
- boj2252
- testdb
- springboot
- react
- boj10775
- onTouch
- TDD
- BOJ
- onTouchListner
- boj2239
- boj15654
- bruteforce
- backtracking
- boj15998
- Spring
- boj15954
- 동적계획법
- DynamicProgramming
- boj15683
- django
- mysql
- boj_15684
- euclideanalgorithm
Archives
- Today
- Total
이마닷의 블로그
[spring] test 환경 분리하기 본문
spring boot는 기본적으로 TDD 환경을 제공한다. TDD를 성공적으로 수행하기 위해서는 실제 서버가 띄워지는 환경과 test가 이루어지는 환경은 분리되어야 한다. 가장 기본적으로 분리가 필요한 것은 데이터베이스이다. JPA를 활용해 관계형 db를 사용하는 서비스에서 db 환경이 분리되어 있지 않다면, 테스트 도중 발생한 db의 변화가 실제 서비스에까지 영향을 미칠 수 있다. 이러한 분리를 spring boot에서는 별도의 profile을 만들어 관리할 수 있다.
1. application.yml
spring:
profiles:
active: prod
include: prod, test
jpa:
show_sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL57Dialect
storage_engine: innodb
generate-ddl: true
hibernate:
ddl-auto: update
- active : prod 환경의 profile을 활성화
- include : 배포환경(prod)와 테스트환경(test)의 프로필을 모두 포함한다.
- hibernate.ddl-auto: update : db를 매번 새로 만드는 ddl 쿼리를 날리지 않고, 변경사항이 있을 때만 ddl을 사용.
2. application-prod.yml
spring:
jpa:
show_sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL57Dialect
storage_engine: innodb
generate-ddl: true
hibernate:
ddl-auto: update
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://{host 주소}:{port 번호}/{db 이름}?serverTimeZone=Asia/Seoul
name: {db 이름}
username: {user}
password: {password}
- 현재 배포 환경 서버의 호스트 주소와 db를 사용.
3. application-test.yml
spring:
jpa:
show_sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL57Dialect
storage_engine: innodb
generate-ddl: true
hibernate:
ddl-auto: update
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://{host 주소}:{port 번호}/{testdb 이름}?serverTimeZone=Asia/Seoul
name: {testdb 이름}
username: {user}
password: {password}
- 현재 test 환경의 호스트 주소와 db를 사용. 해당 프로젝트에서는 동일한 host 내에서 서로 다른 db만 사용했다. (ex. project, project_test)
'java + kotlin' 카테고리의 다른 글
[spring] Nested JSON 만들기 (1) | 2020.12.25 |
---|---|
[spring] springboot test (draft) (0) | 2020.12.20 |
[spring] java-spring 기본 개념 (0) | 2020.07.29 |
Comments