go测试标志:已提供但未定义的标志
嗨,在go中测试时,我正在使用一个标志:go测试标志:已提供但未定义的标志,go,Go,嗨,在go中测试时,我正在使用一个标志: 文件_test.go var ip=flag.String(“ip”、“noip”、“test”) 我只在一个测试文件中使用它。当只测试一个测试文件时,它工作正常,但当我运行: go测试。/-ip 127.0.0.1其他测试文件的所有说明:标记已提供但未定义 你看到这个了吗 在定义标记之前,正在调用Parse() 在调用flag.Parse()之前,您必须确保所有的标志定义都发生在调用init()函数之前。如果您迁移到golang 13,它会更改测试初始
文件_test.go
var ip=flag.String(“ip”、“noip”、“test”)
我只在一个测试文件中使用它。当只测试一个测试文件时,它工作正常,但当我运行:
go测试。/-ip 127.0.0.1
其他测试文件的所有说明:标记已提供但未定义
你看到这个了吗
在定义标记之前,正在调用Parse()
在调用
flag.Parse()
之前,您必须确保所有的标志定义都发生在调用init()
函数之前。如果您迁移到golang 13,它会更改测试初始值设定项的顺序,
所以它可能会导致类似的结果
flag provided but not defined: -test.timeout
作为一种可能的解决方法,您可以使用
var _ = func() bool {
testing.Init()
return true
}()
这将在应用程序之前调用测试初始化。可以在原始线程上找到更多信息:
谢谢,它仍然只在同一个包中工作,但在使用:./…@ChrisG运行所有测试时不起作用。如果您正在测试多个包,那么您提供的任何标志都必须在所有包中有效。没办法,谢谢!你知道如何用regexp-run忽略测试吗?@ChrisG:忽略测试没有帮助。您正在告诉go在
/…
通配符上运行go test
。这不是一次测试运行,而是连续测试每个匹配的包。简单地说,不要使用/…
测试您想要测试的软件包。这是拯救生命的答案!