Home > Backend Development > Golang > How Can I Generate Comprehensive Code Coverage Reports in Go?

How Can I Generate Comprehensive Code Coverage Reports in Go?

Susan Sarandon
Release: 2024-12-27 19:11:09
Original
815 people have browsed it

How Can I Generate Comprehensive Code Coverage Reports in Go?

Comprehensive Code Coverage Reporting in Go

In Go development, obtaining individual package coverage reports is straightforward using the -cover flag. However, gaining a holistic view of coverage across multiple packages can be challenging.

To address this issue, Go 1.10 introduced a significant improvement in code coverage reporting. The -coverpkg flag now accepts a comma-separated list of patterns to match against package dependencies, allowing you to target specific areas for coverage analysis.

To generate a comprehensive coverage report, you can now execute the following commands:

go test -v -coverpkg=./... -coverprofile=profile.cov ./...
go tool cover -func profile.cov
Copy after login

This approach will gather coverage data for all packages that match the ./... pattern and generate a consolidated report that includes detailed coverage information.

Legacy Solution for Older Go Versions

Prior to Go 1.10, obtaining comprehensive coverage reports required a different approach. One such solution, implemented in bash, can be found in the gosweep project on GitHub:

#!/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
Copy after login

This script recursively searches for directories containing Go packages, executes go test with coverage enabled, and aggregates the individual coverage reports into a single profile.cov file. After generating the coverage data, you can use go tool cover -func profile.cov to display a detailed report.

The above is the detailed content of How Can I Generate Comprehensive Code Coverage Reports in Go?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template