별도 패키지의 테스트에 대한 커버리지 통계
코드 파일의 테스트를 여러 패키지로 분리할 때 테스트에 대한 커버리지 통계를 얻는 것이 어려워집니다. 테스트 중인 패키지. 다음 디렉터리 구조를 고려하세요.
api_client: Client.go ArtistService.go ... api_client_tests: ArtistService.Events_test.go ArtistService.Info_test.go UtilityFunction.go ...
go test bandsintown-api/api_client_tests -cover를 실행하면 실제 api_client 패키지는 제외하고 UtilityFunction.go 파일에 대한 적용 범위만 제공됩니다.
해결책:
이 문제를 해결하려면 다음 명령을 사용하십시오.
go test -cover -coverpkg "api_client" "api_client_tests"
이 명령을 사용하면 api_client 패키지에 대해 특별히 활성화된 적용 범위 측정을 사용하여 테스트를 실행할 수 있습니다.
패키지 구조에 대한 참고 사항:
그러나 Go에서는 코드 파일과 테스트를 여러 디렉터리로 분할하는 것이 권장되지 않는다는 점에 주목할 가치가 있습니다. 대신 동일한 패키지 내에 테스트를 유지하면 패키지의 공개 API와의 상호 작용으로 올바르게 제한됩니다.
블랙박스 테스트를 위한 코드 접근성:
목표는 테스트에서 비공개 패키지 수준 변수 및 함수에 액세스할 수 없는 블랙박스 테스트를 수행하는 것입니다. 다음 해결 방법을 사용할 수 있습니다.
<code class="go">// api_client.go package api_client // will not be accessible outside of the package var privateVar = 10 func Method() { } // api_client_test.go package api_client_tests import "testing" import "api_client" // import the package **without** renaming it func TestBlackBox(t *testing.T) { api_client.Method() // call the method from the "api_client" package }</code>
이렇게 하면 테스트가 디렉터리를 수정하지 않고도 패키지 수준 항목에 액세스할 수 있습니다. 구조 또는 캡슐화 규칙을 위반합니다.
위 내용은 테스트가 별도의 디렉터리에 있을 때 패키지에 대한 적용 범위 통계를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!