통합 테스트 코드를 짜는 중에 환경 변수를 못읽어서 계속 스트레스 받고 있었다..
Application Run 때는 환경 변수를 잘 읽어오는데, 왜 안 되는 거냐...ㅠㅠ
검색해도 안 나오고, 해결법 같은 것들 아무리 해봐도 고쳐지지 않고 그래서 테스트 코드 돌릴 때만 properties에 쌩값 넣어서 작업 하고 있었는데 너무 불편해서 직접 인텔리제이 뒤져보면서 찾았다..
문제 정의 (원인)
- 사실 수집
통합 테스트 환경 ActiveProfiles 셋팅을 해줬는데도, 환경 변수를 못 읽어서 실행이 안 되는 오류가 발생했다.
java.lang.RuntimeException: Driver org.h2.Driver claims to not accept jdbcUrl, ${TEST_DB_URL}
at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:110) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:326) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:112) ~[HikariCP-5.0.1.jar:na]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:93) ~[HikariCP-5.0.1.jar:na]
- 원인 추론
- 테스트 환경에서 환경 변수가 설정되는 타이밍이 Application Run 환경이랑 다르다.
조치 방안 검토 (분석)
- @TestPropertySource 어노테이션 사용
- Configuration 훑어보기
조치 방안 구현
- @TestPropertySource 사용해봤지만 미해결
- Configuration 훑어보다가 Template 만들 수 있는 것을 발견
'TIL' 카테고리의 다른 글
TIL 2024-01-03 깃 액션으로 CD 구현하기 (0) | 2024.01.03 |
---|---|
TIL 2024-01-02 깃 액션으로 CI 하기 (0) | 2024.01.03 |
TIL 2023-12-29 CI/CD 흐름 (0) | 2023.12.30 |
TIL 2023-12-28 스프링 단위 테스트랑 통합 환경 테스트 차이가 뭘까? (0) | 2023.12.29 |
TIL 2023-12-27 팀 프로젝트 위치 변경 로직 구현 - 삽입 정렬 (0) | 2023.12.28 |