레이블이 unittest인 게시물을 표시합니다. 모든 게시물 표시
레이블이 unittest인 게시물을 표시합니다. 모든 게시물 표시

golang 파일 이름 작성시 주의 사항

golang 은 파일 확장자가 .go 인것 말고 신경써야 할 부분이 있다.
테스트 하려고 무심코 파일 이름을 xxx_test.go 로 하는 경우가 종종 있는데 주의하자.
파일명이 xxx_test.go 와 같이 끝나는 경우 다음과 같이 빌드할 파일을 찾지 못한다는 에러가 발생한다.
can't load package: package .: no buildable Go source files in

이유는 _test.go 로 끝나는 패턴은 go test 에서 사용하는 테스트 파일이기 때문이다.
자세한 내용은 아래 godoc 에서 확인 할 수 있다.
http://godoc.org/code.google.com/p/go/src/cmd/go#hdr-Test_packages

# ysoftman_test.go 테스트 코드 실행시
go test

# ysoftman_test.go 의 Ysoftman 이름이 있는 함수들 테스트
go test -run Ysoftman ./path/to/package

# 정규식 사용시
go test -run "^Ysoftman$" ./path/to/package

# timeout 적용시
go test -timeout 10s -run "^Ysoftman$" ./path/to/package

# testing 관련 자세한 내용
https://golang.org/pkg/testing/

#####

# 테스트 coverage 파일 생성
go test -p 8 -coverprofile cover.out ./...

# function 별 coverage % 보기
go tool cover -func=cover.out

# coverage 결과를 html 로 보기
go tool cover -html cover.out -o cover.html
open cover.html

#####

유닛테스트 작성시 TDT(https://go.dev/wiki/TableDrivenTests) 방식을 지향
_test.go 는 https://github.com/cweill/gotests 커맨드를 사용해 생성
goland, vim, vscode 등 IDE 플러그인 기능으로 생성할 수도 있다.