Go에서 외부 테스트에 대한 정확한 적용 범위 통계를 얻는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-27 16:02:29
원래의
185명이 탐색했습니다.

 How to Get Accurate Coverage Stats for External Tests in Go?

외부 테스트에 대한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!