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 | 31 |
Tags
- gradle
- JavaScript
- Kubernetes
- mybatis
- Java
- NCP
- Windows
- LOG4J
- react
- VSCode
- jetbrains
- kubectl
- wildfly
- log4j2
- dbeaver
- Git
- useEffect
- intellijIDEA
- MySQL
- IntelliJ
- database
- nodejs
- docker
- JPA
- tibero
- Spring
- BPMN
- gson
- nginx
- springboot
Archives
- Today
- Total
두 손끝의 창조자
Spring Test에 @Sql 이 실패할 때 고려해야 할 것 본문
SpringTest로 테스트 실행 전 Sql을 실행하려면 클래스나 메소드에 @Sql
애노테이션으로 미리 작성된 쿼리를 실행할 수 있다.
만약, 실행했는데
java.lang.IllegalStateException: Failed to execute SQL scripts for test context ---- 생략
at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.13.jar:5.3.13]
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts(SqlScriptsTestExecutionListener.java:254) ~[spring-test-5.3.13.jar:5.3.13]
at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.lambda$executeSqlScripts$0(SqlScriptsTestExecutionListener.java:201) ~[spring-test-5.3.13.jar:5.3.13]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
이런 에러가 나면 에러만 봐서는 원인을 알 수가 없다.
이번 경우는 에러난 지점에 가서 브레이크 포인트를 넣고 디버깅 해보니 데이터소스를 찾아오지 못 했다.
왜 그럴까 생각해보니 이 애플리케이션에 등록된 데이터소스가 2개이어서 둘중하나를 결정 못한듯 했다.
그러면 데이터소스를 지정을 해줘야 한다.
이를 위해 @SqlConfig
애노테이션을 활용한다.
@Sql(config = @SqlConfig(transactionManager = "tx1
value = {"/testdata/menu.sql"}
)
반응형
Comments