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.)