ホームページ > バックエンド開発 > Golang > Go で包括的なコード カバレッジ レポートを生成するにはどうすればよいですか?

Go で包括的なコード カバレッジ レポートを生成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-27 19:11:09
オリジナル
818 人が閲覧しました

How Can I Generate Comprehensive Code Coverage Reports in Go?

Go での包括的なコード カバレッジ レポート

Go 開発では、-cover フラグを使用すると、個々のパッケージ カバレッジ レポートを簡単に取得できます。ただし、複数のパッケージにわたるカバレッジの全体的なビューを取得することは困難な場合があります。

この問題に対処するために、Go 1.10 ではコード カバレッジ レポートの大幅な改善が導入されました。 -coverpkg フラグは、パッケージの依存関係と照合するパターンのカンマ区切りリストを受け入れるようになり、特定の領域を対象にしてカバレッジ分析を行うことができるようになりました。

包括的なカバレッジ レポートを生成するには、次のコマンドを実行できるようになりました。

go test -v -coverpkg=./... -coverprofile=profile.cov ./...
go tool cover -func profile.cov
ログイン後にコピー

このアプローチでは、./... パターンに一致するすべてのパッケージのカバレッジ データを収集し、詳細なカバレッジを含む統合レポートを生成します。

古い Go バージョンのレガシー ソリューション

Go 1.10 より前では、包括的なカバレッジ レポートを取得するには、別のアプローチが必要でした。このようなソリューションの 1 つは、bash で実装されており、GitHub の gosweet プロジェクトにあります。

#!/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 tools cover -func profile.cov を使用して詳細レポートを表示できます。

以上がGo で包括的なコード カバレッジ レポートを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート