피드로 돌아가기
terraform test: The Built-in Terraform Module Testing Framework, No Go Required
Dev.toDev.to
Infrastructure

Go 없이 HCL만으로 구현하는 Terraform 내장 테스트 프레임워크 도입

terraform test: The Built-in Terraform Module Testing Framework, No Go Required

Recca Tsai2026년 4월 20일8intermediate

Context

기존 Terraform 모듈 검증은 plan 결과의 수동 확인이나 Go 기반의 Terratest 작성이라는 극단적인 선택지로 제한됨. 이로 인해 단순 변수 검증이나 설정 확인을 위해 과도한 학습 곡선과 인프라 비용이 발생하는 비효율이 존재함.

Technical Solution

  • HCL 기반의 내장 테스트 프레임워크를 통한 별도 언어 의존성 제거
  • mock_provider 도입으로 Cloud Credentials 없이 가상 리소스 속성값을 통한 Unit Test 수행
  • plan-only 모드와 apply 모드의 분리를 통한 리소스 생성 비용 최적화 및 검증 단계 세분화
  • expect_failures 구문을 활용한 Variable Validation Rule의 자동화된 부정 테스트 구현
  • run 블록 내 변수 우선순위 설정을 통한 테스트 케이스별 독립적인 환경 구성
  • .tftest.hcl 파일 구조화를 통한 테스트 코드의 모듈화 및 유지보수성 확보

1. 모듈 내 variable validation 규칙을 expect_failures로 자동화했는지 확인

2. CI 파이프라인의 속도 향상을 위해 mock_provider 기반의 Unit Test를 우선 배치

3. 복잡한 HTTP 검증이나 리트라이 로직 필요 여부에 따라 terraform test와 Terratest 선택 기준 설정

4. .tftest.hcl 파일 내 run 블록을 통해 엣지 케이스별 변수 조합 검증

원문 읽기