>  기사  >  백엔드 개발  >  외부 패키지에 대한 Golang 통합 테스트 범위를 정확하게 측정하는 방법은 무엇입니까?

외부 패키지에 대한 Golang 통합 테스트 범위를 정확하게 측정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-12 10:36:02418검색

How to Accurately Measure Golang Integration Test Coverage for External Packages?

Golang 통합 테스트에 대한 테스트 적용 범위 결정

Golang에서 통합 테스트에 대한 테스트 적용 범위를 측정하는 것은 테스트가 서비스 외부에 있을 때 문제가 될 수 있습니다. 테스트되었습니다. 적절한 지시문 없이 go test -cover를 사용하면 부정확한 적용 범위 통계가 발생할 수 있습니다.

해결책: -coverpkg 지시문 활용

-coverpkg 지시문은 다음을 허용하여 이 문제를 해결합니다. 테스트가 해당 패키지의 일부인지 여부에 관계없이 적용 범위를 측정하려는 패키지를 지정할 수 있습니다. 다음은 mypackage 패키지에 대한 적용 범위를 측정하는 예입니다.

$ go test -cover -coverpkg mypackage ./src/api/...

이 명령은 mypackage 패키지를 사용하지만 패키지의 일부가 아닌 테스트를 제외하고 특별히 mypackage 패키지에 대한 적용 범위 통계를 제공합니다.

커버리지 보고서 비교

-coverpkg 지시문을 사용하거나 사용하지 않고 생성된 커버리지 보고서를 비교하여 대상 패키지에 대한 통합 테스트를 통해 달성한 실제 커버리지를 평가할 수 있습니다.

예:

-coverpkg 제외:

$ go test -cover ./src/api/...
ok      /api    0.191s  coverage: 71.0% of statements
ok      /api/mypackage   0.023s  coverage: 0.7% of statements

-coverpkg 포함:

$ go test -cover -coverpkg mypackage ./src/api/...
ok      /api    0.190s  coverage: 50.8% of statements in mypackage
ok      /api/mypackage   0.022s  coverage: 0.7% of statements in mypackage

위의 예에서 -coverpkg를 사용하면 mypackage 패키지가 50.8%로 감소합니다. 이는 통합 테스트가 대상 패키지의 코드를 완전히 다루지 않음을 나타냅니다. 이 정보는 통합 테스트를 더욱 강화하여 보다 포괄적인 적용 범위를 달성하는 데 도움이 될 수 있습니다.

위 내용은 외부 패키지에 대한 Golang 통합 테스트 범위를 정확하게 측정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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