Apabila unit menguji kod dalam folder berbeza dalam projek Go, anda mungkin menghadapi percanggahan dalam pelaporan liputan kod. Ini boleh mengecewakan, kerana anda mungkin menjangkakan semua kod akan dilindungi semasa menjalankan ujian dalam subfolder.
Masalah:
Walaupun melaksanakan kod daripada folder bahan dalam folder stuff_test, laporan liputan menunjukkan 0% daripada penyata yang dilindungi. Struktur projek berikut terlibat:
stuff/stuff.go -> package: stuff test/stuff/stuff_test.go -> package: test
Punca Kemungkinan:
Analisis liputan kod terhad kepada pakej yang diuji secara lalai. Dalam kes ini, pakej stuff_test berada dalam folder yang berasingan daripada pakej bahan, yang menyebabkan isu ini.
Penyelesaian:
Untuk menyelesaikan masalah ini, anda boleh menggunakan pilihan -coverpkg semasa menjalankan ujian go. Pilihan ini membolehkan anda menentukan pakej yang anda ingin kumpulkan maklumat liputan.
go test ./test/... -coverprofile=cover.out -coverpkg ./...
Arahan ini akan menggunakan analisis liputan pada semua pakej yang sepadan dengan corak yang ditentukan, yang dalam kes ini adalah semua pakej dalam direktori semasa dan subdirektorinya.
Melihat Laporan Liputan:
Setelah ujian telah jalankan, anda boleh menjana laporan liputan menggunakan arahan penutup alat go.
go tool cover -html=cover.out
Arahan ini akan mencipta laporan HTML bernama cover.out yang boleh anda buka dalam pelayar web untuk melihat maklumat liputan untuk semua pakej yang dinyatakan.
Atas ialah kandungan terperinci Mengapa Laporan Liputan Kod Go Saya Menunjukkan 0% Apabila Menguji Merentasi Folder Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!