嗨,我在进行测试时使用了一个标志:
file_test.go var ip = flag.String("ip", "noip", "test")
我只在一个测试文件中使用它。当只测试那个测试文件时它工作正常,但是当我运行时: go test ./... -ip 127.0.0.1
其他测试文件的所有内容都说: flag provided but not defined
。
你见过这个吗?
问候
原文由 Chris G. 发布,翻译遵循 CC BY-SA 4.0 许可协议
嗨,我在进行测试时使用了一个标志:
file_test.go var ip = flag.String("ip", "noip", "test")
我只在一个测试文件中使用它。当只测试那个测试文件时它工作正常,但是当我运行时: go test ./... -ip 127.0.0.1
其他测试文件的所有内容都说: flag provided but not defined
。
你见过这个吗?
问候
原文由 Chris G. 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你已经迁移到 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
原文由 lanwen 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.4k 阅读
6 回答7k 阅读✓ 已解决
4 回答2.4k 阅读
1 回答3.4k 阅读
2 回答955 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
flag.Parse()
在定义标志之前被调用。您必须确保在调用
flag.Parse()
之前发生所有标志定义,通常是通过在init()
函数中定义所有标志。