Rumah >pembangunan bahagian belakang >Golang >Mengapa Liputan Kod Go Saya Menunjukkan 0% Walaupun Pelaksanaan Ujian Berjaya dalam Folder Berasingan?

Mengapa Liputan Kod Go Saya Menunjukkan 0% Walaupun Pelaksanaan Ujian Berjaya dalam Folder Berasingan?

Patricia Arquette
Patricia Arquetteasal
2024-11-28 10:59:11827semak imbas

Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?

Menyelesaikan Percanggahan Liputan Kod dalam Folder Berasingan untuk Projek GO

Semasa mengerjakan projek dengan struktur tertentu, di mana pakej dan ujiannya terletak dalam folder berasingan, anda menghadapi masalah. Walaupun pelaksanaan kod dalam stuff.go daripada stuff_test.go, laporan liputan dipaparkan 0.0%.

Punca dan Penyelesaian Kemungkinan

Isu ini timbul kerana lalai GO tingkah laku analisis liputan, yang hanya terpakai pada pakej yang sedang diuji. Untuk mengatasinya, bendera -coverpkg boleh digunakan untuk menentukan pakej yang mana data liputan harus dikumpulkan.

Dengan menggunakan pilihan -coverpkg, anda boleh menentukan bahawa ujian dalam test/stuff/stuff_test.go harus pertimbangkan juga liputan kod untuk stuff/stuff.go. Ini memastikan bahawa analisis liputan merangkumi semua pakej yang berkaitan.

Berikut ialah contoh arahan yang menunjukkan penggunaan -coverpkg:

go test ./test/... -coverpkg ./...

Arahan ini menjalankan ujian dalam pakej yang sepadan dengan laluan ujian dan termasuk maklumat perlindungan untuk semua pakej yang sepadan ./....

Melihat Liputan Laporan

Setelah ujian dilaksanakan, anda boleh menjana dan melihat laporan liputan menggunakan arahan berikut:

go tool cover -html=cover.out

Arahan ini menjana laporan liputan HTML bernama cover.out, yang boleh dibuka dalam pelayar web untuk menggambarkan data liputan.

Atas ialah kandungan terperinci Mengapa Liputan Kod Go Saya Menunjukkan 0% Walaupun Pelaksanaan Ujian Berjaya dalam Folder Berasingan?. 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