eelseungmin

[IntelliJ, JUnit5] Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'ACCESS_SECRET' in value "${ACCESS_SECRET}"

by eelseungmin

배경

오늘 급하게 JWT 방식을 사용하는 로그인 테스트 코드를 짜다가 테스트를 돌려보는 과정에서 다음과 같은 에러를 만났다.

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'ACCESS_SECRET' in value "${ACCESS_SECRET}"
	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180)
	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126)
	at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239)
	at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210)

 

요컨대 ACCESS_SECRET이라는 환경변수를 인식하지 못한다는 의미로 보인다.

 

다만 나는 Run - Edit Configuration 메뉴로 들어가 다음과 같이 환경변수를 잘 등록해준 상태였고, 오타도 없었다.

혹시 몰라 File - Invalidate Cache 메뉴를 통해 캐시를 초기화한 뒤 재시작도 해봤으나 증상은 여전했다.

 

 

해결한 방법

그러다가 위 스샷에서 Junit이라는 옵션이 활성화된 걸 보고 여기서도 환경변수 등록을 해줘야 하나 싶어서 등록하고 적용해 주었더니 테스트가 정상적으로 잘 동작되었다.

 

아마 Junit 테스트 환경과 로컬 환경의 환경변수가 각각 따로 적용되는 것이 원인으로 생각된다.

블로그의 정보

eel.log

eelseungmin

활동하기