首頁 > 後端開發 > Golang > 如何合併多個 Go 套件的程式碼覆蓋率結果?

如何合併多個 Go 套件的程式碼覆蓋率結果?

Barbara Streisand
發布: 2024-12-24 11:44:17
原創
658 人瀏覽過

How to Combine Code Coverage Results from Multiple Go Packages?

如何整合Go 中多個套件的程式碼覆蓋率結果

在Go 庫中測試多個套件時,取得程式碼覆蓋率的全面視圖。預設情況下,將 -cover 標誌與 go test 結合使用可提供各個套件的覆蓋率資訊。

要聚合所有套件的覆蓋率數據,您可以採用以下兩種方法之一:

使用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 tool cover 產生總體程式碼覆蓋率的摘要。

以上是如何合併多個 Go 套件的程式碼覆蓋率結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板