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

Barbara Streisand
Lepaskan: 2024-10-30 12:32:27
asal
181 orang telah melayarinya

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>
    Salin selepas log masuk
  2. Jalankan ujian integrasi dari dalam ujian main():

    <code class="go">cmd := exec.Command("./mybin", "somefile1")
    cmd.Run()</code>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
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!