Mendapat Cerapan Liputan Merentasi Sempadan Pakej dalam Go
Apabila bekerja dengan projek Go yang melibatkan berbilang pakej, adalah penting untuk memastikan maklumat liputan yang komprehensif untuk analisis kod yang tepat. Walau bagaimanapun, adalah perkara biasa untuk menghadapi situasi di mana laporan liputan mengecualikan fungsi yang berada dalam pakej yang berbeza.
Mari pertimbangkan senario di mana projek anda terdiri daripada struktur berikut:
Apabila menjalankan analisis liputan, anda mungkin perasan bahawa laporan liputan tidak menunjukkan garisan yang dilindungi untuk bar.go. Percanggahan ini timbul kerana mekanisme perlindungan lalai dalam Go tidak termasuk fungsi dari luar pakej yang sedang diuji.
Penyelesaian: Lanjutkan Perlindungan dengan Coverpkg
Untuk mengatasi had ini, Go menyediakan penyelesaian melalui bendera -coverpkg. Dengan menyatakan bendera ini semasa analisis liputan, anda boleh melanjutkan pengiraan liputan untuk memasukkan fungsi dalam pakej lain.
Arahan liputan yang dikemas kini sepatutnya kelihatan seperti ini:
go test -coverpkg=./... -coverprofile=coverage.out ./...
The -coverpkg=. /... flag arahan Pergi untuk mengira liputan untuk semua pakej dalam projek anda, termasuk panggilan fungsi silang pakej. Selepas itu, laporan liputan akan memberikan pandangan tentang liputan foo.go dan bar.go.
Pendekatan ini menghapuskan keperluan untuk ujian berasingan untuk pakej db dan api, memperkemas proses ujian sambil memastikan analisis liputan komprehensif .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapat Liputan Kod Go Komprehensif Merentas Pelbagai Pakej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!