GO의 코드 범위에서 파일 제외
우선 먼저 빠른 요약입니다. 코드 검사는
go cover
도구를 사용하여 생성할 수 있습니다. 문서에서 도구 사용법은 다음과 같이 설명됩니다.Usage of 'go tool cover':
Given a coverage profile produced by 'go test':
go test -coverprofile=c.out
Open a web browser displaying annotated source code:
go tool cover -html=c.out
따라서 먼저 다음을 사용하여 테스트를 실행합니다.
go test ./... -coverprofile=coverage.out
그 후 다음을 사용하여 코드 커버리지를 생성합니다.
go tool cover -html=coverage.out
다음과 같이 한 번의 호출로 명령을 차례로 실행하는 것을 좋아합니다.
go test ./... -coverprofile=coverage.out && go tool cover -html=coverage.out
해결 방법
간단 해. 코드 적용 범위는
coverprofile
를 기반으로 생성되며 이는 각 코드 파일의 어떤 라인이 적용되고 어떤 라인이 적용되지 않는지에 대한 주석을 추가하는 일반 텍스트 파일에 불과합니다. coverprofile
에서 파일에 대한 모든 줄을 제거하면 코드 검사 보고서에 포함되지 않습니다. 저것과 같이 쉬운.coverprofile
는 다음과 같습니다.코드 적용 범위를 생성할 때마다
coverprofile
를 수동으로 조작해야 한다면 이상적이지 않을 것입니다. 더 나은 방법은 이 프로세스를 자동화하는 것입니다. 이를 위해서는 2가지 작업을 수행해야 합니다. 첫 번째는 코드 검사에서 제외할 파일의 경로를 포함하는 파일입니다. 이 파일의 파일 경로에는 전체 패키지 이름이 포함되어야 합니다. "exclude-from-code-coverage.txt"라는 파일을 만들었습니다. 다음은 모양의 스 니펫입니다.두 번째는
coverprofile
에서 exclude-from-code-coverage.txt의 파일을 제거하는 스크립트입니다. 이 간단한 스크립트(exclude-from-code-coverage.sh라는 이름)는 다음과 같은 작업을 수행합니다.#!/bin/sh
while read p || [ -n "$p" ]
do
sed -i '' "/${p//\//\\/}/d" ./coverage.out
done < ./exclude-from-code-coverage.txt
그리고 마지막으로 모든 것을 하나로 묶습니다.
go test ./... -coverprofile=coverage.out && ./exclude-from-code-coverage.sh && go tool cover -html=coverage.out
분석해 보겠습니다.
go test ./... -coverprofile=coverage.out
는 테스트를 실행하고 coverprofile
를 생성합니다. ./exclude-from-code-coverage.sh
는 coverprofile
에서 코드 적용 범위에서 제외하려는 파일을 제거합니다. go tool cover -html=coverage.out
는 코드 검사 보고서를 생성했습니다. Reference
이 문제에 관하여(GO의 코드 범위에서 파일 제외), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/talalyousif/excluding-files-from-code-coverage-in-go-291f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)