회사에서 TestContainers를 도입하여 데이터 인프라를 구성하여 테스트를 진행하고 있었습니다.
그런데 어느 순간 TestContainers에 띄워진 컨테이너의 내부를 들여다보니 로직을 통해 있어야 할 정보들이 하나도 없었습니다.
모든 통합 테스트를 돌리면 저장 돼야 할 정보들이 없었고, 통합 테스트 하나만 돌렸을 때는 정상적으로 동작하였습니다.
그러다가 Gradle로 test를 직접 돌려보니 컨테이너 내부에 정상적으로 정보들이 들어가 있는 걸 확인할 수 있었습니다.
잘못된 캐시 혹은 다른 설정 값으로 인해 오류가 생기지 않았을까 생각이 듭니다.
이전에 저는 IntelliJ에서 Run Test Using 를 IntelliJ IDEA를 쓸 수 있도록 하였습니다.
아무래도 테스트 실행을 IDEA 로 설정하면 Gradle보다 더 빠른 속도를 가지다 보니 이러한 선택을 택하게 됐습니다.
이번 계기로 다른 분들에게도 어떤 것을 사용하는지 물어본 계기가 됐는데, 다들 Gradle을 사용한다는 것이었습니다!
이유는 다음과 같습니다.
제 환경에서 위의 이슈를 겪은 이유는 아무래도 1번의 문제에 해당된다고 생각합니다.
그리고 다시 한 번 생각하게 됐던 요소는 3번입니다.
제 상황과 반대로 IDEA에서 잘 됐는데 Gradle에서 안 된다면?
큰 이슈가 될 수 있는데, 당장 해결하지 못하고 떠나 보낼 수 있다는 것입니다.
간단한 유닛 테스트들의 경우 빠른 IDEA를 사용할 수 있겠지만, 점점 복잡해지는 의존성들을 고려해봤을 때 Gradle을 사용하여 production 환경과 좀 더 동일하게 가져가는 것이 좋다 생각합니다.