Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Sertakan Panggilan Pakej Luaran dalam Laporan Liputan Go Saya?

Bagaimanakah Saya Boleh Sertakan Panggilan Pakej Luaran dalam Laporan Liputan Go Saya?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 10:27:10858semak imbas

How Can I Include External Package Calls in My Go Coverage Report?

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!

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