Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menguji Argumen Baris Perintah dengan Berkesan dalam Ujian Unit Go?

Bagaimanakah Saya Boleh Menguji Argumen Baris Perintah dengan Berkesan dalam Ujian Unit Go?

Barbara Streisand
Barbara Streisandasal
2024-12-20 00:46:09697semak imbas

How Can I Effectively Test Command-Line Arguments in Go Unit Tests?

Menguji Argumen Baris Perintah dalam Ujian Unit Go

Dalam soalan anda, anda menyebut isu menggunakan bendera baris arahan dalam unit Go ujian. Anda mempunyai aplikasi modular dengan ujian yang menggunakan set modul aplikasi yang berbeza, beberapa daripadanya ditala melalui bendera baris arahan. Walau bagaimanapun, apabila anda menjalankan ujian dengan bendera baris perintah tersuai, anda mendapat ralat yang menyatakan bahawa bendera tidak ditakrifkan.

Isu asasnya ialah ujian boleh laku menggunakan semua parameter baris perintah melainkan satu atau lebih banyak daripada mereka diabaikan di dalamnya. Dalam kes anda, anda mempunyai berbilang ujian dan sesetengah daripada mereka menggunakan bendera tersuai manakala yang lain tidak.

Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

  • Jalankan ujian go untuk setiap fail _test.go secara berasingan: Lulus set parameter yang sesuai untuk setiap ujian secara individu. Contohnya:
go test -test.v ./testfile1_test.go -gamedir.custom=c:/resources
go test -test.v ./testfile2_test.go
  • Abaikan bendera yang tidak digunakan dalam ujian: Ubah suai fail ujian anda untuk mengabaikan bendera yang tidak digunakan. Contohnya, dalam ujian yang tidak menggunakan bendera -gamedir.custom, anda boleh menambah kod berikut:
var customPath string
func init() {
    flag.StringVar(&customPath, "gamedir.custom", "", "Custom game resources directory")
}
func TestFunc(t *testing.T) {
    if testing.Short() {
        return
    }
    t.Skip("Skipping this test as it uses `-gamedir.custom` flag")
}

Semakan testing.Short() digunakan untuk menentukan sama ada ujian sedang dijalankan dalam mod pendek, yang biasanya berlaku apabila menjalankan semua ujian secara serentak. Jika ujian dijalankan dalam mod pendek, ia akan dilangkau. Jika tidak, ujian akan dilangkau kerana bendera -gamedir.custom tidak digunakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguji Argumen Baris Perintah dengan Berkesan 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