根据我的评论,第一个值
os.Args是可执行文件本身的(路径),因此
os.Args = []string{"cmd","-user=bla"}应解决您的问题。您可以从标准包中查看标志测试,他们正在做类似的事情。另外,就像
os.Args“全局变量”一样,最好保持测试之前的状态并在测试之后恢复状态。与链接测试类似:
oldArgs := os.Argsdefer func() { os.Args = oldArgs }()例如,在其他测试正在检查调用时传递的真实参数时,这可能会很有用
go test。



