Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menggabungkan Hasil Liputan Kod daripada Pelbagai Pakej Go?

Bagaimana untuk Menggabungkan Hasil Liputan Kod daripada Pelbagai Pakej Go?

Barbara Streisand
Barbara Streisandasal
2024-12-24 11:44:17629semak imbas

How to Combine Code Coverage Results from Multiple Go Packages?

Cara Menyatukan Keputusan Liputan Kod untuk Pelbagai Pakej dalam Go

Apabila menguji berbilang pakej dalam perpustakaan Go, ia boleh memberi manfaat untuk mendapatkan pandangan menyeluruh tentang liputan kod. Secara lalai, menggunakan -cover flag with go test menyediakan maklumat liputan untuk pakej individu.

Untuk mengagregat data liputan merentas semua pakej, anda boleh menggunakan salah satu daripada dua pendekatan:

Menggunakan -coverpkg dalam Go 1.10 dan lebih baru:

Dalam Go 1.10 dan lebih tinggi, bendera -coverpkg membenarkan anda untuk menentukan senarai sasaran liputan yang dipisahkan koma. Untuk menampung semua kebergantungan pakej ujian, gunakan:

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

Menggunakan skrip Bash dalam versi Go terdahulu:

Untuk versi Go sebelum 1.10, pertimbangkan untuk menggunakan skrip Bash untuk mengumpul dan menyatukan data liputan:

#!/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

Skrip ini berulang melalui direktori dengan fail Go, berjalan ujian dengan liputan didayakan dan menambahkan keputusan pada fail profil yang disatukan (profile.cov). Anda kemudiannya boleh menggunakan penutup alat go untuk menjana ringkasan liputan kod keseluruhan.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Hasil Liputan Kod daripada Pelbagai Pakej Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn