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