## Bagaimana Mencapai Liputan 100% dalam Ujian Fungsian Walaupun Bintik Buta?

DDD
Lepaskan: 2024-10-25 08:14:02
asal
987 orang telah melayarinya

## How to Achieve 100% Coverage in Functional Tests Despite Blind Spots?

Menunjukkan Liputan Ujian Fungsian Tanpa Bintik Buta

Masalah

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.

Penyelesaian

Terdapat dua pendekatan utama untuk menangani isu ini:

Menggunakan TestMain:

  • Ekstrak fungsi aplikasi ke dalam kelas berasingan untuk ujian, mengelakkan fungsi utama.
  • Gunakan fungsi TestMain dalam rangka kerja ujian untuk mengawal pelaksanaan kod pada urutan utama.

Memfaktorkan Semula Kod:

  • Alih keluar syarat if daripada kaedah keluar dan gunakan mekanisme lain (cth. , urutan berasingan atau proses pengawas) untuk menamatkan proses selepas profil liputan ditulis.
  • Kecualikan fail main.go daripada ujian menggunakan teg binaan (cth., // build !test). Pendekatan ini disyorkan jika fungsi utama adalah mudah dan tidak memerlukan ujian.

Contoh Pelaksanaan

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>
Salin selepas log masuk

Kod yang diubah suai ini akan dikecualikan daripada laporan liputan, membolehkan anda mewakili liputan ujian fungsi anda dengan tepat.

Menjalankan Ujian

Bina perduaan liputan dengan:

<code class="sh">go test -c -coverpkg=. -o example -tags test</code>
Salin selepas log masuk

Jalankan ujian dengan:

<code class="sh">./example -test.coverprofile=/tmp/profile</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!