외부 테스트에 대한 Coverage Stats
Go에서는 테스트하는 코드와 동일한 패키지 내에 테스트를 유지하는 것이 좋습니다. 그러나 코드베이스가 수많은 테스트 파일로 구성된 경우 이러한 테스트를 다른 패키지로 분리하여 보다 깔끔한 구성을 선호할 수 있습니다. 이 접근 방식은 테스트를 패키지의 공개 API 액세스로 제한하여 더 나은 구성 및 캡슐화를 촉진합니다.
다음 구조가 주어지면:
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 보고서 실행 100% 그러나 이 적용 범위는 UtilityFunction.go에만 적용됩니다.
해결책:
패키지를 병합하지 않고 테스트 중인 api_client 패키지에 대한 적용 범위 통계를 얻으려면:
go test -cover -coverpkg "api_client" "api_client_tests"
그러나 코드와 테스트 파일을 서로 다른 디렉터리로 분리하는 것은 Go 규칙과 충돌한다는 점에 주목할 가치가 있습니다. 패키지 외부에 액세스할 수 없는 블랙박스 테스트를 원하는 경우 파일을 재구성하지 않고 테스트를 새 패키지로 이동하는 것이 좋습니다.
api_client.go:
<code class="go">package api_client // Only accessible within the package var privateVar = 10 func Method() {}</code>
api_client_test.go:
<code class="go">package api_client_tests import "testing" func TestClient(t *testing.T) { Method() // Still accessible from another package }</code>
위 내용은 Go에서 외부 테스트에 대한 정확한 적용 범위 통계를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!