Dalam kod yang disediakan, kaedah keluar termasuk syarat yang mengecualikan os.Keluar (kod) baris daripada hasil liputan. Ini mewujudkan titik buta dalam laporan liputan, kerana garisan dilaksanakan tetapi tidak ditunjukkan sebagai hijau.
Terdapat dua pendekatan utama untuk menangani isu ini:
Menggunakan TestMain:
Memfaktorkan Semula Kod:
Berikut ialah versi kod yang dikemas kini menggunakan teg binaan:
<code class="go">//+build !test package main import "os" func main() { os.Exit(doFunc()) }</code>
Kod yang diubah suai ini akan dikecualikan daripada laporan liputan, membolehkan anda mewakili liputan ujian fungsi anda dengan tepat.
Bina perduaan liputan dengan:
<code class="sh">go test -c -coverpkg=. -o example -tags test</code>
Jalankan ujian dengan:
<code class="sh">./example -test.coverprofile=/tmp/profile</code>
Laporan liputan yang terhasil kini sepatutnya menunjukkan liputan penyata 100%, termasuk baris yang dikecualikan sebelum ini dalam kaedah keluar.
Atas ialah kandungan terperinci ## Bagaimana Mencapai Liputan 100% dalam Ujian Fungsian Walaupun Bintik Buta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!