일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- java predicate
- kotlin ::
- 그래프큐엘
- 생성자주입
- 기능적 요구사항
- 소프트웨어의 품격
- spring formatter
- ioc컨테이너
- 스프링 포매터
- 스프링부트 도커
- method refetence
- fetch join
- 스프링시큐리티
- 스프링
- 수정자주입
- Atomicity
- 도커 이미지 빌드
- kotlin 리팩터링
- open-session-in-view
- jpa no session
- 정적팩토리메서드
- 자바 필터
- 비기능적 요구사항
- jpa lazy
- 스프링 시큐리티 설정
- 스프링di
- IOC
- Spring
- 동적파라미터
- 토비의 스프링
Archives
- Today
- Total
공부기록
@DataJpaTest는 임베디드 디비를 쓴다 본문
반응형
@DataJpaTest
application-test.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/codechobo_test?serverTimezone=Asia/Seoul&useSSL=false
username: codechobo_user
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
open-in-view: false
hibernate:
ddl-auto: create
database-platform: org.hibernate.dialect.MySQL57Dialect
상황 :
@DataJpaTest
테스트를 실행했을 때Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ACCOUNT" not found; SQL statement:...
같은 에러가 뜬다.
문제점 :
분명히 application-test.yml
에 datasource
를 mysql
로 잡아주었는데도 임베디드디비인 h2
에서 에러가 난다.
왜 이런 건지 알아보니, @DataJpaTest
는 데이터 소스가 저렇게 되있어도 임베디드 디비를 쓴다!
해결 :
따라서 @DataJpaTest
를 사용하는 테스트 클래스 위에 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
를 붙여줘서 임베디드 디비로 대체하지 않고, 설정 파일에 적시된 데이터소스를 사용하게끔 했다.
반응형
'Spring' 카테고리의 다른 글
Security가 관련되어 있는 테스트 시 WithSecurityContextFactory 활용. (0) | 2020.08.08 |
---|---|
[SPRING] 스프링부트로 도커 이미지 만들기. (4) | 2020.06.02 |
YAML 파일을 변수에 매핑하기. (@Value, @ConfigurationProperties) (0) | 2020.03.15 |
HTTP2로 요청을 보내보자 (0) | 2020.01.29 |
ResourceLoader (2) | 2020.01.22 |