Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Bendera Baris Perintah Tersuai dalam Ujian Unit Go?

Bagaimana untuk Mengendalikan Bendera Baris Perintah Tersuai dalam Ujian Unit Go?

Susan Sarandon
Susan Sarandonasal
2024-11-29 09:31:12615semak imbas

How to Handle Custom Command-Line Flags in Go Unit Tests?

Menyesuaikan Bendera Baris Perintah dalam Ujian Unit Go

Apabila bekerja dengan aplikasi Go termodular dan ujian unit yang menggunakan modul aplikasi tertentu, mungkin sukar untuk menguji perintah- kefungsian baris yang bergantung pada bendera yang ditentukan pengguna.

Pertimbangkan perkara berikut contoh:

func init() {
    flag.StringVar(&this.customPath, "gamedir.custom", "", "Custom game resources directory")
}

Apabila cuba menguji fungsi ini dengan arahan:

go test -test.v ./... -gamedir.custom=c:/resources

masa jalan mengembalikan ralat:

flag provided but not defined: -gamedir.custom

Memahami Isu

Ralat timbul kerana arahan go test menjalankan ujian individu secara serentak. Apabila menggunakan bendera -test.v, berbilang boleh laku ujian dibuat, masing-masing dengan bendera baris arahannya sendiri. Jika ujian tertentu tidak mengendalikan bendera -gamedir.custom secara eksplisit, ia akan gagal dengan ralat yang disebutkan di atas.

Penyelesaian: Menentukan Bendera dalam Ujian Individu

Untuk menyelesaikan isu ini, tentukan arahan -bendera baris dalam setiap fail ujian. Ini memastikan bahawa setiap ujian boleh laku boleh mengendalikan bendera yang diperlukan.

Contohnya:

func TestMyModule(t *testing.T) {
    flag.StringVar(&this.customPath, "gamedir.custom", "", "Custom game resources directory")

    // Test code here...
}

Dengan mentakrifkan bendera dalam setiap fungsi ujian, kami memastikan bahawa semua boleh laku ujian mempunyai bendera yang sesuai ditakrifkan dan boleh berjalan tanpa ralat.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Bendera Baris Perintah Tersuai dalam Ujian Unit 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