如何整合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中文網其他相關文章!