go test는 매우 강력하면서도 사용법이 간단합니다. 터미널(프로젝트 루트 경로)에서 다음 명령어들을 상황에 맞춰 사용하시면 됩니다.
가장 자주 쓰는 핵심 명령어 4가지부터 알려드릴게요.
프로젝트 내의 모든 폴더를 뒤져서 테스트를 실행합니다.
go test ./...
./... : "현재 디렉토리와 그 하위의 모든 디렉토리"를 의미하는 Go의 패턴입니다.tests 폴더를 따로 만드셨다면 이 명령어를 쓰거나 go test ./tests/...라고 명시해야 합니다.기본적으로 Go 테스트는 성공하면 아무 말도 안 하고 조용히 끝납니다. 어떤 테스트가 돌고 있는지, 내가 찍은 fmt.Println 로그를 보고 싶다면 -v를 붙이세요.
go test -v ./tests/...
-run)특정 기능을 개발 중일 때, 모든 테스트를 다 돌리면 시간이 오래 걸립니다. 원하는 함수 하나만 콕 집어서 실행할 수 있습니다.
# "TestConvertMP4"라는 이름의 함수만 실행
go test -v -run TestConvertMP4 ./tests/
-run 뒤에는 정규표현식이 들어갑니다.TestConvert라고만 쓰면 TestConvertMP4, TestConvertJPG 등 TestConvert로 시작하는 모든 테스트가 실행됩니다.-count=1) ⭐(중요)통합 테스트(서버 통신 테스트)할 때 가장 중요합니다.
Go는 코드가 변경되지 않았다면, 이전에 성공했던 테스트 결과를 **캐싱(저장)**해두고 실제로는 실행하지 않은 채 "성공(cached)"이라고 띄웁니다.
하지만 서버 상태가 바뀌었을 수도 있으므로, 무조건 실제로 다시 실행하게 하려면 이 옵션을 씁니다.
go test -v -count=1 ./tests/...
-cover)내 코드가 얼마나 테스트되었는지(테스트가 코드의 몇 %를 건드렸는지) 확인할 수 있습니다.
go test -cover ./...
개발하실 때 보통 이렇게 쓰시면 됩니다.
go test -v ./tests/...go test -v -count=1 -run TestSpecificFunc ./tests/VS Code를 쓰신다면, _test.go 파일 내의 함수 이름 위에 생기는 조그만 run test 또는 debug test 글자를 클릭해서 실행할 수도 있습니다 (가장 편한 방법).