테스트 수행 선택 - Gradle vs IntelliJ IDEA(Run Test Using)

Uk·2024년 8월 16일

이슈 발생!

회사에서 TestContainers를 도입하여 데이터 인프라를 구성하여 테스트를 진행하고 있었습니다.
그런데 어느 순간 TestContainers에 띄워진 컨테이너의 내부를 들여다보니 로직을 통해 있어야 할 정보들이 하나도 없었습니다.
모든 통합 테스트를 돌리면 저장 돼야 할 정보들이 없었고, 통합 테스트 하나만 돌렸을 때는 정상적으로 동작하였습니다.
그러다가 Gradle로 test를 직접 돌려보니 컨테이너 내부에 정상적으로 정보들이 들어가 있는 걸 확인할 수 있었습니다.

잘못된 캐시 혹은 다른 설정 값으로 인해 오류가 생기지 않았을까 생각이 듭니다.

IDEA?

이전에 저는 IntelliJ에서 Run Test Using 를 IntelliJ IDEA를 쓸 수 있도록 하였습니다.
아무래도 테스트 실행을 IDEA 로 설정하면 Gradle보다 더 빠른 속도를 가지다 보니 이러한 선택을 택하게 됐습니다.
이번 계기로 다른 분들에게도 어떤 것을 사용하는지 물어본 계기가 됐는데, 다들 Gradle을 사용한다는 것이었습니다!

Gradle을 선택하는 이유

이유는 다음과 같습니다.

  1. 캐시 경로 및 설정들이 다르다
  2. IDEA 내장을 사용하여 안 되는 경우가 존재한다.
  3. Build & Test는 Build 도구로 하는 것이 옳다.

제 환경에서 위의 이슈를 겪은 이유는 아무래도 1번의 문제에 해당된다고 생각합니다.
그리고 다시 한 번 생각하게 됐던 요소는 3번입니다.
제 상황과 반대로 IDEA에서 잘 됐는데 Gradle에서 안 된다면?
큰 이슈가 될 수 있는데, 당장 해결하지 못하고 떠나 보낼 수 있다는 것입니다.

결론

간단한 유닛 테스트들의 경우 빠른 IDEA를 사용할 수 있겠지만, 점점 복잡해지는 의존성들을 고려해봤을 때 Gradle을 사용하여 production 환경과 좀 더 동일하게 가져가는 것이 좋다 생각합니다.

0개의 댓글