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 サイトの他の関連記事を参照してください。