在Go 單元測試中測試命令列參數
在您的問題中,您提到了在Go 單元中使用命令列標誌的問題測試。您有一個模組化應用程序,其中的測試使用不同的應用程式模組集,其中一些模組是透過命令列標誌進行調整的。但是,當您使用自訂命令列標誌執行測試時,您會收到一條錯誤,指出該標誌未定義。
根本問題是測試可執行檔應用所有命令列參數,除非其中一個或其中更多的內容被忽略。在您的情況下,您有多個測試,其中一些使用自訂標誌,而其他則不使用。
要解決此問題,您有兩個選擇:
go test -test.v ./testfile1_test.go -gamedir.custom=c:/resources go test -test.v ./testfile2_test.go
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") }
testing.Short() 檢查用於確定測試是否在短模式下運行,這通常是同時執行所有測試時的情況。如果測試在短模式下運行,它將被跳過。否則,測試將被跳過,因為 -gamedir.custom 標誌未被使用。
以上是如何在 Go 單元測試中有效測試命令列參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!