ホームページ >バックエンド開発 >Golang >複数の Go パッケージからのコード カバレッジ結果を結合するにはどうすればよいですか?

複数の Go パッケージからのコード カバレッジ結果を結合するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-24 11:44:17627ブラウズ

How to Combine Code Coverage Results from Multiple Go Packages?

Go で複数のパッケージのコード カバレッジ結果を統合する方法

Go ライブラリで複数のパッケージをテストする場合、コードカバレッジの包括的なビュー。デフォルトでは、go test で -cover フラグを使用すると、個々のパッケージのカバレッジ情報が提供されます。

すべてのパッケージにわたるカバレッジ データを集計するには、次の 2 つのアプローチのいずれかを使用できます。

使用Go 1.10 以降の -coverpkg:

Go 1.10 以降では、-coverpkg フラグを使用すると、カバレッジ ターゲットのカンマ区切りのリストを指定します。テスト パッケージのすべての依存関係をカバーするには、次を使用します。

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

以前の Go バージョンでの Bash スクリプトの使用:

1.10 より前の Go バージョンの場合は、使用を検討してください。カバレッジ データを収集および統合するための Bash スクリプト:

#!/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 ファイルを含むディレクトリを作成し、カバレッジを有効にしてテストを実行し、結果を統合プロファイル ファイル (profile.cov) に追加します。その後、go ツール カバーを使用して、コード カバレッジ全体の概要を生成できます。

以上が複数の Go パッケージからのコード カバレッジ結果を結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。