>백엔드 개발 >Golang >별도의 폴더에서 테스트할 때 Go 코드 적용 범위 보고서에 0%가 표시되는 이유는 무엇입니까?

별도의 폴더에서 테스트할 때 Go 코드 적용 범위 보고서에 0%가 표시되는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-25 09:55:12692검색

Why Does My Go Code Coverage Report Show 0% When Testing Across Separate Folders?

분리된 Go 폴더의 코드 적용 범위 불일치 디버깅

Go 프로젝트 내의 여러 폴더에서 코드를 단위 테스트할 때 코드 적용 범위 보고에 불일치가 발생할 수 있습니다. 하위 폴더에서 테스트를 실행할 때 모든 코드가 다루어질 것으로 예상할 수 있으므로 실망스러울 수 있습니다.

문제:

stuff_test 폴더의 커버리지 보고서에는 커버된 명세서의 0%가 표시됩니다. 다음 프로젝트 구조가 관련됩니다:

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test

가능한 원인:

코드 적용 범위 분석은 기본적으로 테스트되는 패키지로 제한됩니다. 이 경우 stuff_test 패키지는 stuff 패키지와 별도의 폴더에 있으며, 이로 인해 문제가 발생합니다.

해결책:

이 문제를 해결하려면 다음을 사용할 수 있습니다. go test를 실행할 때 -coverpkg 옵션을 사용하세요. 이 옵션을 사용하면 적용 범위 정보를 수집하려는 패키지를 지정할 수 있습니다.

go test ./test/... -coverprofile=cover.out -coverpkg ./...

이 명령은 지정된 패턴과 일치하는 모든 패키지에 적용 범위 분석을 적용합니다. 이 경우에는 해당 패키지의 모든 패키지입니다. 현재 디렉토리 및 하위 디렉토리.

범위 보고서 보기:

테스트가 실행되면, go 도구 Cover 명령을 사용하여 적용 범위 보고서를 생성할 수 있습니다.

go tool cover -html=cover.out

이 명령은 웹 브라우저에서 열 수 있는 Cover.out이라는 HTML 보고서를 생성하여 지정된 모든 항목에 대한 적용 범위 정보를 볼 수 있습니다. 패키지.

위 내용은 별도의 폴더에서 테스트할 때 Go 코드 적용 범위 보고서에 0%가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.