Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mendapatkan Liputan Kod daripada Ujian Integrasi untuk Go Binaries?

Bagaimana untuk Mendapatkan Liputan Kod daripada Ujian Integrasi untuk Go Binaries?

Barbara Streisand
Barbara Streisandasal
2024-10-30 12:32:27169semak imbas

How to Get Code Coverage from Integration Tests for Go Binaries?

Merakam Liputan Kod daripada Go Binary

Soalan:

Bagaimana metrik liputan kod ditangkap semasa menjalankan ujian penyepaduan terhadap perduaan Go?

Jawapan:

Walaupun alat liputan Go asli hanya berfungsi dengan ujian unit, anda masih boleh mengumpul liputan data untuk ujian penyepaduan.

Penyelesaian:

Untuk mencapai ini:

  1. Buat fail ujian yang dilaksanakan fungsi main():

    <code class="go">func TestMainApp(t *testing.T) {
        go main()
        // Start integration tests
    }</code>
  2. Jalankan ujian integrasi dari dalam ujian main():

    <code class="go">cmd := exec.Command("./mybin", "somefile1")
    cmd.Run()</code>
  3. Kumpulkan statistik liputan:

    <code class="go">coverProfile := "coverage.out"
    test.RunMain()
    if err := testing.StartCoverage(coverProfile); err != nil {
        log.Fatalf("Coverage: %v", err)
    }
    defer testing.StopCoverage(coverProfile)</code>
  4. Jana laporan liputan:

    <code class="go">if err := testing.RunTests(); err != nil {
        log.Fatalf("Coverage: %v", err)
    }
    cmd := exec.Command("go", "tool", "cover", "-html=coverage.out")
    cmd.Run()</code>

Rujukan Tambahan:

  • [Lakukan liputan dengan ujian luaran](https://blog.golang.org/cover-external-tests)

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Liputan Kod daripada Ujian Integrasi untuk Go Binaries?. 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