go test 사용법

백엔드&인프라 추종자·2025년 11월 22일

go test는 매우 강력하면서도 사용법이 간단합니다. 터미널(프로젝트 루트 경로)에서 다음 명령어들을 상황에 맞춰 사용하시면 됩니다.

가장 자주 쓰는 핵심 명령어 4가지부터 알려드릴게요.

1. 🚀 프로젝트 전체 테스트 실행 (가장 기본)

프로젝트 내의 모든 폴더를 뒤져서 테스트를 실행합니다.

go test ./...
  • ./... : "현재 디렉토리와 그 하위의 모든 디렉토리"를 의미하는 Go의 패턴입니다.
  • 주의: tests 폴더를 따로 만드셨다면 이 명령어를 쓰거나 go test ./tests/...라고 명시해야 합니다.

2. 📝 로그 자세히 보기 (Verbose 모드)

기본적으로 Go 테스트는 성공하면 아무 말도 안 하고 조용히 끝납니다. 어떤 테스트가 돌고 있는지, 내가 찍은 fmt.Println 로그를 보고 싶다면 -v를 붙이세요.

go test -v ./tests/...

3. 🎯 특정 테스트 함수만 실행 (-run)

특정 기능을 개발 중일 때, 모든 테스트를 다 돌리면 시간이 오래 걸립니다. 원하는 함수 하나만 콕 집어서 실행할 수 있습니다.

# "TestConvertMP4"라는 이름의 함수만 실행
go test -v -run TestConvertMP4 ./tests/
  • -run 뒤에는 정규표현식이 들어갑니다.
  • TestConvert라고만 쓰면 TestConvertMP4, TestConvertJPGTestConvert로 시작하는 모든 테스트가 실행됩니다.

4. 🔄 캐시 끄고 강제 재실행 (-count=1) ⭐(중요)

통합 테스트(서버 통신 테스트)할 때 가장 중요합니다.
Go는 코드가 변경되지 않았다면, 이전에 성공했던 테스트 결과를 **캐싱(저장)**해두고 실제로는 실행하지 않은 채 "성공(cached)"이라고 띄웁니다.

하지만 서버 상태가 바뀌었을 수도 있으므로, 무조건 실제로 다시 실행하게 하려면 이 옵션을 씁니다.

go test -v -count=1 ./tests/...

📊 5. 테스트 커버리지 확인 (-cover)

내 코드가 얼마나 테스트되었는지(테스트가 코드의 몇 %를 건드렸는지) 확인할 수 있습니다.

go test -cover ./...

💡 요약: 추천하는 실행 습관

개발하실 때 보통 이렇게 쓰시면 됩니다.

  1. 전체 기능 확인할 때:
    go test -v ./tests/...
  2. 특정 기능 개발하면서 반복 확인할 때 (캐시 끄고):
    go test -v -count=1 -run TestSpecificFunc ./tests/

VS Code를 쓰신다면, _test.go 파일 내의 함수 이름 위에 생기는 조그만 run test 또는 debug test 글자를 클릭해서 실행할 수도 있습니다 (가장 편한 방법).

profile
AI 답변 글을 주로 올립니다.

0개의 댓글