Go의 포괄적인 코드 적용 범위 보고
Go 개발에서는 -cover 플래그를 사용하여 개별 패키지 적용 범위 보고서를 얻는 것이 간단합니다. 그러나 여러 패키지에 걸쳐 적용 범위를 전체적으로 파악하는 것은 어려울 수 있습니다.
이 문제를 해결하기 위해 Go 1.10에서는 코드 적용 범위 보고 기능이 크게 향상되었습니다. -coverpkg 플래그는 이제 패키지 종속성과 일치하는 쉼표로 구분된 패턴 목록을 허용하므로 적용 범위 분석을 위해 특정 영역을 대상으로 지정할 수 있습니다.
포괄적인 적용 범위 보고서를 생성하려면 이제 다음 명령을 실행할 수 있습니다.
go test -v -coverpkg=./... -coverprofile=profile.cov ./... go tool cover -func profile.cov
이 접근 방식은 ./... 패턴과 일치하는 모든 패키지에 대한 적용 범위 데이터를 수집하고 자세한 적용 범위가 포함된 통합 보고서를 생성합니다.
이전 Go 버전을 위한 레거시 솔루션
Go 1.10 이전에는 포괄적인 적용 범위 보고서를 얻으려면 다른 접근 방식이 필요했습니다. bash로 구현된 솔루션 중 하나는 GitHub의 gosweep 프로젝트에서 찾을 수 있습니다.
#!/bin/bash set -e 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 패키지가 포함된 디렉터리를 재귀적으로 검색하고, 적용 범위가 활성화된 상태에서 go 테스트를 실행하고, 개별 적용 범위 보고서를 집계합니다. 단일 profile.cov 파일로. 커버리지 데이터를 생성한 후 go tool Cover -func profile.cov를 사용하여 자세한 보고서를 표시할 수 있습니다.
위 내용은 Go에서 포괄적인 코드 범위 보고서를 어떻게 생성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!