Go 적용 범위에 패키지 호출 포함
문제:
다중 패키지 구조에서는 현재 테스트된 패키지 외부의 패키지에 있는 특정 기능이 적용 범위 보고서에서 무시됩니다. 특히 db 패키지에 있는 bar.go의 함수는 api 패키지의 foo.go에서 호출되었음에도 불구하고 아무런 적용 범위도 표시하지 않습니다.
해결책:
To 이 문제를 해결하려면 go test 명령에 -coverpkg 플래그를 추가해야 합니다. -coverpkg 플래그는 적용 범위 보고서에 포함할 패키지를 지정합니다.
설명:
기본적으로 적용 범위 보고서에는 테스트에서 직접 가져온 패키지만 포함됩니다. 패키지. 이 경우 foo_test.go(foo.go의 테스트 패키지)는 db를 직접 가져오지 않으므로 bar.go의 기능은 다루지 않습니다.
-coverpkg 플래그를 추가하면 지정된 패키지가 명시적으로 포함됩니다. 커버리지 분석에서 이 경우 다음 명령은 적용 범위 보고서에 현재 디렉터리(./...)에 있는 모든 패키지를 포함합니다.
go test -coverpkg=./... coverprofile=coverage.out ./...
이렇게 하면 bar에 대한 함수 호출을 포함하는 적용 범위 보고서가 생성됩니다. foo.go에서 이동하세요.
참고:
-coverpkg 플래그를 사용하면 테스트 실행에 영향을 미칠 수 있습니다. 더 많은 수의 패키지를 분석해야 하기 때문에 시간이 걸립니다. 다만, Cross-Package 함수 호출을 위해서는 정확한 Coverage 정보를 얻어야 합니다.
위 내용은 My Go 적용 범위 보고서에 외부 패키지 호출을 어떻게 포함할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!