본문 바로가기

기록

Redis 테스트 환경 구성하기

최근 진행하고 있는 프로젝트에 통합테스트를 작성하고자 하고 있다.

내가 담당한 부분은 redis에 데이터를 저장하고, 조회하는 부분이기 때문에, redis 관련하여 통합테스트 환경 구축이 필요하였다.

 

통합테스트 환경 구축을 위해 여러가지 서치를 한 후...!  embeddedRedis 라는것을 발견하였다.

 

embeddedRedis의 경우 여러가지 블로그 글들도 많고 하여 빠르게 진행할 수 있다고 생각하여 진행해보고자 하였다.

그러나 이슈가 있었으니 ... 바로 내가 사용하고있는 맥북 환경(M1) 에서는 작동하지 않는 문제 였다 ... 😭

https://github.com/kstyrc/embedded-redis/issues/127

 

운이 좋게도 해당 이슈 아래 부분에 m1 에서 작동하지 않는 문제 해결 방법을 다른분이 적어 주셨지만,

과연 이게 좋은 해결 방법일까 라는 생각이 들었다.

 

1. 첫번째 여러가지 환경

우리팀의 경우 윈도우 환경에서 프로젝트를 빌드하는 분들도 있다. 과연 윈도우에서는 embededRedis가 잘 작동할까 의문이다.

또한 앞으로 M1, M2, M3... 계속해서 나올텐데 그때마다 분기 처리 해서 테스트 코드 환경을 유지보수해야한다.

 

2. 두번째 redis 버전 업데이트

redis 버전 업데이트 해주려면 파일 다운 받아서 새로 업데이트 해줘야하고 ,,, 어지간히 불편한게 아닌것 같다.

 

지금 당장은 redis 통합테스트 환경을 구축해서 진행은 할 수 있지만, 앞으로 해당 프로젝트를 관리할텐데 유지보수 측면에서 별로라고 생각하였다.

 

 

그래서 다른 방법을 찾던중..! testContainers를 발견하였다.

 

testContainer란 쉽게 말해서 Docker Container를 실행시켜주는 라이브러리로써, redis를 docker 로 띄어 테스트 환경을 구성할 수 있는 라이브러리다.

 

사용해보니 version 관리 같은 경우에도 image만 다운받아서 바로 사용할 수 있기 때문에 매우 편리하고, production과 비슷한 환경을 만들 수 있기 때문에 좋은것 같다.

 

https://www.testcontainers.org/

 

Testcontainers for Java

Testcontainers Not using Java? Here are other supported languages! About Testcontainers for Java Testcontainers for Java is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or

www.testcontainers.org

 

다음 포스팅에서 testContainers를 활용한 예제를 작성해보려고한다.