>백엔드 개발 >Golang >Go 패키지 적용 범위 결과를 어떻게 집계할 수 있나요?

Go 패키지 적용 범위 결과를 어떻게 집계할 수 있나요?

DDD
DDD원래의
2024-12-21 10:44:10882검색

How Can I Aggregate Go Package Coverage Results?

전체 Go 패키지 적용 범위

Go 라이브러리에서 테스트를 실행할 때 모든 패키지에 대한 통합 적용 범위 개요를 얻어야 할 수도 있습니다. 패키지. 기본적으로 '-cover' 플래그는 각 패키지에 대한 적용 범위 정보만 개별적으로 제공합니다.

해결 방법

Go 1.10부터 '-coverpkg' 플래그를 활용할 수 있습니다. 이 문제를 해결하기 위해. 다음 명령을 실행하기만 하면 됩니다.

go test -v -coverpkg=./... -coverprofile=profile.cov ./...

테스트를 실행한 후 다음을 사용하여 집계된 적용 범위 분석을 생성합니다.

go tool cover -func profile.cov

레거시 방법(Pre-Go 1.10)

Go 1.10 이전 버전의 경우 다음 bash를 사용할 수 있습니다. 스크립트:

#!/bin/bash

echo 'mode: count' > profile.cov

for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do
  if ls $dir/*.go &>/dev/null; then
    go test -short -covermode=count -coverprofile=$dir/profile.tmp $dir
    if [ -f $dir/profile.tmp ]; then
      cat $dir/profile.tmp | tail -n +2 >> profile.cov
      rm $dir/profile.tmp
    fi
  fi
done

go tool cover -func profile.cov

위 내용은 Go 패키지 적용 범위 결과를 어떻게 집계할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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