Go로 테스트 커버리지 측정
소개
Go는 표준 기능으로 테스트 커버리지를 내릴 수 있습니다.
단순히 테스트의 커버율을 산출하는 것에서 구체적으로 어느 부분의 테스트가 부족한지를 보여주는 기능도 있으므로 이번에는 그들을 간단히 정리하고 싶습니다.
간단하게 테스트 커버리지를 측정
$ go test -cover ./...
? app_name/api [no test files]
? app_name/api/config [no test files]
ok app_name/api/handlers 0.421s coverage: 100.0% of statements
? app_name/api/responses [no test files]
간단하게 테스트 커버리지를 측정할 때는 go test -cover
구체적으로 테스트할 수 없는 위치를 표시합니다.
# cover.outというファイルテストのカバー内容を吐き出す
$ go test -cover ./... -coverprofile=cover.out
# go toolを用いてcover.htmlを作成する
$ go tool cover -html=cover.out -o cover.html
# cover.htmlを開く
$ open cover.html
구체적으로 테스트되지 않은 장소를 특정할 때는 위와 같이 명령을 치는 것으로 테스트할 수 없는 곳을 적문자로 표시시킬 수 있습니다.
불필요한 파일을 커버리지 계산에서 제거
# cover.out.tmpというファイルテストのカバー内容を吐き出す
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" > cover.out
# 不必要なcover.out.tmpを削除
rm cover.out.tmp
# 以下先ほどと同じ
go tool cover -html=cover.out -o cover.html
open cover.html
테스트 커버율을 측정할 때 mock용 코드 등이 들어가면 적절한 커버리지를 측정할 수 없기 때문에, 그럴 때는 조금 쉘 예술합니다
위의 경우는 코드를 mock 할 때에 _mock.go
라는 접미어를 붙이고 있으므로 그 경우는 커버리지 측정의 파일 (cover.out)로부터 삭제합니다.
마지막으로
go는 표준으로 테스트 커버리지 툴이 붙어 있는 것은 매우 좋네요!
새빨간 상태에서 테스트를 쓰고 점점 녹색으로 하는 과정은 상당히 즐겁습니다! !
이하 개인적으로 사용하고 있는 make file 커멘드입니다
자신의 mock 파일과 wire 자동 생성 파일을 제거하려고합니다.
Makefilecover:
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" | grep -v "wire_gen.go" > cover.out
rm cover.out.tmp
go tool cover -html=cover.out -o cover.html
open cover.html
참고문헌
$ go test -cover ./...
? app_name/api [no test files]
? app_name/api/config [no test files]
ok app_name/api/handlers 0.421s coverage: 100.0% of statements
? app_name/api/responses [no test files]
간단하게 테스트 커버리지를 측정할 때는
go test -cover
구체적으로 테스트할 수 없는 위치를 표시합니다.
# cover.outというファイルテストのカバー内容を吐き出す
$ go test -cover ./... -coverprofile=cover.out
# go toolを用いてcover.htmlを作成する
$ go tool cover -html=cover.out -o cover.html
# cover.htmlを開く
$ open cover.html
구체적으로 테스트되지 않은 장소를 특정할 때는 위와 같이 명령을 치는 것으로 테스트할 수 없는 곳을 적문자로 표시시킬 수 있습니다.
불필요한 파일을 커버리지 계산에서 제거
# cover.out.tmpというファイルテストのカバー内容を吐き出す
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" > cover.out
# 不必要なcover.out.tmpを削除
rm cover.out.tmp
# 以下先ほどと同じ
go tool cover -html=cover.out -o cover.html
open cover.html
테스트 커버율을 측정할 때 mock용 코드 등이 들어가면 적절한 커버리지를 측정할 수 없기 때문에, 그럴 때는 조금 쉘 예술합니다
위의 경우는 코드를 mock 할 때에 _mock.go
라는 접미어를 붙이고 있으므로 그 경우는 커버리지 측정의 파일 (cover.out)로부터 삭제합니다.
마지막으로
go는 표준으로 테스트 커버리지 툴이 붙어 있는 것은 매우 좋네요!
새빨간 상태에서 테스트를 쓰고 점점 녹색으로 하는 과정은 상당히 즐겁습니다! !
이하 개인적으로 사용하고 있는 make file 커멘드입니다
자신의 mock 파일과 wire 자동 생성 파일을 제거하려고합니다.
Makefilecover:
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" | grep -v "wire_gen.go" > cover.out
rm cover.out.tmp
go tool cover -html=cover.out -o cover.html
open cover.html
참고문헌
# cover.outというファイルテストのカバー内容を吐き出す
$ go test -cover ./... -coverprofile=cover.out
# go toolを用いてcover.htmlを作成する
$ go tool cover -html=cover.out -o cover.html
# cover.htmlを開く
$ open cover.html
# cover.out.tmpというファイルテストのカバー内容を吐き出す
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" > cover.out
# 不必要なcover.out.tmpを削除
rm cover.out.tmp
# 以下先ほどと同じ
go tool cover -html=cover.out -o cover.html
open cover.html
테스트 커버율을 측정할 때 mock용 코드 등이 들어가면 적절한 커버리지를 측정할 수 없기 때문에, 그럴 때는 조금 쉘 예술합니다
위의 경우는 코드를 mock 할 때에
_mock.go
라는 접미어를 붙이고 있으므로 그 경우는 커버리지 측정의 파일 (cover.out)로부터 삭제합니다.마지막으로
go는 표준으로 테스트 커버리지 툴이 붙어 있는 것은 매우 좋네요!
새빨간 상태에서 테스트를 쓰고 점점 녹색으로 하는 과정은 상당히 즐겁습니다! !
이하 개인적으로 사용하고 있는 make file 커멘드입니다
자신의 mock 파일과 wire 자동 생성 파일을 제거하려고합니다.
Makefilecover:
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" | grep -v "wire_gen.go" > cover.out
rm cover.out.tmp
go tool cover -html=cover.out -o cover.html
open cover.html
참고문헌
cover:
go test -cover ./... -coverprofile=cover.out.tmp
# 自動生成コードをカバレッジ対象から外し、カバレッジファイルを作成
cat cover.out.tmp | grep -v "**_mock.go" | grep -v "wire_gen.go" > cover.out
rm cover.out.tmp
go tool cover -html=cover.out -o cover.html
open cover.html
Reference
이 문제에 관하여(Go로 테스트 커버리지 측정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takehanKosuke/items/4342ca544d205fb36eb0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)