Bagaimana untuk Mendapatkan Statistik Liputan Tepat untuk Ujian Luar dalam Go?

Patricia Arquette
Lepaskan: 2024-10-27 16:02:29
asal
185 orang telah melayarinya

 How to Get Accurate Coverage Stats for External Tests in Go?

Statistik Liputan untuk Ujian Luaran

Dalam Go, adalah disyorkan untuk menyimpan ujian dalam pakej yang sama seperti kod yang sedang diuji. Walau bagaimanapun, jika pangkalan kod anda terdiri daripada banyak fail ujian, anda mungkin lebih suka organisasi yang lebih bersih dengan mengasingkan ujian ini ke dalam pakej yang berbeza. Pendekatan ini mengehadkan ujian untuk mengakses API awam pakej, mempromosikan organisasi dan enkapsulasi yang lebih baik.

Memandangkan struktur berikut:

api_client:
    Client.go
    ArtistService.go

api_client_tests:
    ArtistService.Events_test.go
    ArtistService.Info_test.go
    UtilityFunction.go
Salin selepas log masuk

Menjalankan ujian go bandsintown-api/api_client_tests -cover reports 100% perlindungan, tetapi perlindungan ini hanya berkaitan dengan UtilityFunction.go.

Penyelesaian:

Untuk mendapatkan statistik perlindungan bagi pakej api_client yang sedang diuji tanpa menggabungkan pakej:

go test -cover -coverpkg "api_client" "api_client_tests"
Salin selepas log masuk

Walau bagaimanapun, perlu diperhatikan bahawa pemisahan kod dan fail ujian ke dalam direktori berbeza bercanggah dengan konvensyen Go. Jika ujian kotak hitam dikehendaki, di mana tiada apa-apa di luar pakej boleh diakses, pertimbangkan untuk mengalihkan ujian ke pakej baharu tanpa menyusun semula fail:

api_client.go:

<code class="go">package api_client

// Only accessible within the package
var privateVar = 10

func Method() {}</code>
Salin selepas log masuk

api_client_test.go:

<code class="go">package api_client_tests

import "testing"

func TestClient(t *testing.T) {
    Method() // Still accessible from another package
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Statistik Liputan Tepat untuk Ujian Luar dalam Go?. 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!