Termasuk Panggilan Pakej dalam Liputan Go
Masalah:
Dalam projek Go dengan struktur berbilang pakej, fungsi tertentu dalam pakej di luar pakej yang sedang diuji sedang diabaikan oleh laporan liputan. Khususnya, fungsi dalam bar.go yang terletak dalam pakej db tidak menunjukkan sebarang liputan walaupun dipanggil dari foo.go dalam pakej api.
Penyelesaian:
Kepada selesaikan ini, bendera -coverpkg harus ditambahkan pada perintah go test. Bendera -coverpkg menentukan pakej yang hendak disertakan dalam laporan liputan.
Penjelasan:
Secara lalai, laporan liputan hanya termasuk pakej yang diimport terus oleh ujian pakej. Dalam kes ini, foo_test.go (pakej ujian untuk foo.go) tidak mengimport db secara langsung, jadi fungsi dalam bar.go tidak dilindungi.
Menambah bendera -coverpkg secara eksplisit termasuk pakej yang ditentukan dalam analisis liputan. Dalam kes ini, arahan berikut akan memasukkan semua pakej dalam direktori semasa (./...) dalam laporan liputan:
go test -coverpkg=./... coverprofile=coverage.out ./...
Ini akan menjana laporan liputan yang merangkumi panggilan fungsi ke bar. pergi dari foo.go.
Nota:
Menggunakan bendera -coverpkg boleh menjejaskan masa pelaksanaan ujian, kerana ia memerlukan menganalisis bilangan pakej yang lebih besar. Walau bagaimanapun, adalah perlu untuk mendapatkan maklumat liputan yang tepat untuk panggilan fungsi silang pakej.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Sertakan Panggilan Pakej Luaran dalam Laporan Liputan Go Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!