Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menjana Laporan Liputan Kod Komprehensif dalam Go?

Bagaimanakah Saya Boleh Menjana Laporan Liputan Kod Komprehensif dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-27 19:11:09815semak imbas

How Can I Generate Comprehensive Code Coverage Reports in Go?

Pelaporan Liputan Kod Komprehensif dalam Go

Pembangunan In Go, mendapatkan laporan liputan pakej individu adalah mudah menggunakan bendera -cover. Walau bagaimanapun, mendapatkan pandangan holistik liputan merentas berbilang pakej boleh mencabar.

Untuk menangani isu ini, Go 1.10 memperkenalkan peningkatan ketara dalam pelaporan liputan kod. Bendera -coverpkg kini menerima senarai corak yang dipisahkan koma untuk dipadankan dengan kebergantungan pakej, membolehkan anda menyasarkan kawasan tertentu untuk analisis liputan.

Untuk menjana laporan liputan komprehensif, anda kini boleh melaksanakan perintah berikut:

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

Pendekatan ini akan mengumpulkan data liputan untuk semua pakej yang sepadan dengan corak ./... dan menjana laporan disatukan yang merangkumi liputan terperinci maklumat.

Penyelesaian Warisan untuk Versi Go Lama

Sebelum Pergi 1.10, mendapatkan laporan liputan komprehensif memerlukan pendekatan yang berbeza. Satu penyelesaian sedemikian, dilaksanakan dalam bash, boleh didapati dalam projek gosweep di GitHub:

#!/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 secara rekursif mencari direktori yang mengandungi pakej Go, melaksanakan ujian go dengan liputan didayakan dan mengagregatkan laporan liputan individu ke dalam satu fail profil.cov. Selepas menjana data liputan, anda boleh menggunakan go tool cover -func profile.cov untuk memaparkan laporan terperinci.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Laporan Liputan Kod Komprehensif dalam 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