Rumah >pembangunan bahagian belakang >Golang >Bagaimana Saya Boleh Menangkap Liputan Kod daripada Ujian Integrasi Terhadap Perduaan Go?

Bagaimana Saya Boleh Menangkap Liputan Kod daripada Ujian Integrasi Terhadap Perduaan Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 09:19:27528semak imbas

How Can I Capture Code Coverage from Integration Tests Against a Go Binary?

Merakam Liputan Kod daripada Go Binary

Apabila menjalankan ujian unit, menangkap liputan kod adalah mudah. Walau bagaimanapun, pengumpulan metrik liputan semasa ujian penyepaduan terhadap binari itu sendiri boleh membuktikan mencabar. Adakah terdapat cara untuk mengatasi halangan ini?

Keperluan untuk Liputan Ujian Integrasi

Ujian integrasi memberikan pandangan yang lebih komprehensif tentang liputan kod berbanding ujian unit sahaja. Dengan menjalankan perduaan terhadap input dunia sebenar, kami boleh menilai bagaimana kod kami bertindak dalam pelbagai keadaan.

Cabaran

Alat liputan Go beroperasi hanya bersamaan dengan pakej ujian. Ini menimbulkan isu untuk ujian penyepaduan yang biasanya tidak sesuai dalam rangka kerja ini.

Penyelesaian: Ujian Penyepaduan dalam Rangka Kerja Pengujian Go

Untuk menangkap liputan daripada ujian penyepaduan , kita perlu menyepadukannya ke dalam pakej ujian entah bagaimana.

  1. Buat Fail Ujian: Cipta fail ujian yang melaksanakan fungsi utama() anda dalam goroutine.
<code class="go">func TestMainApp(t *testing.T) {
    go main()
    // ... Start integration tests here
}</code>
  1. Laksanakan Ujian Penyepaduan: Gunakan exec.Cmd untuk menjalankan ujian penyepaduan anda di luar goroutine yang dibuat sebelum ini.
  2. Kumpulkan Statistik Liputan: Akhir sekali, kumpulkan statistik liputan menggunakan alat liputan.

Sumber Lain

Untuk perbincangan sebelumnya tentang topik ini, rujuk artikel " Pergi liputan dengan ujian luaran," yang meneroka pendekatan yang setanding.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menangkap Liputan Kod daripada Ujian Integrasi Terhadap Perduaan Go?. 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