[嗨,我在进行测试时使用的是标志:file_test.govar ip = flag.String("ip", "noip", "test")
我仅在一个测试文件中使用它。它仅在测试一个测试文件时有效,但是在我运行时:其他测试文件的go test ./... -ip 127.0.0.1
alle说:flag provided but not defined
。
您看到了吗?
问候
flag.Parse()
在定义您的标志之前被调用。
通常必须通过在flag.Parse()
函数中定义所有标志来确保在调用init()
之前所有标志的定义都发生。
如果您已迁移到golang 13,它将更改测试初始化程序的顺序,因此可能导致类似>>
flag provided but not defined: -test.timeout
作为一种可能的解决方法,您可以使用
var _ = func() bool { testing.Init() return true }()
将在应用程序之前调用测试初始化。可以在原始线程上找到更多信息:
https://github.com/golang/go/issues/31859#issuecomment-489889428