首页 > 解决方案 > 是否可以更改 os.Args 的值,以便我可以将测试添加到我正在创建的 CLI 中?

问题描述

是否可以os.Args在 Golang 程序中更改 global 的值?我编写一个像 Cobra 这样的库只是为了好玩,在内部我利用它os.Args来解析命令行参数。我想这样做以正确测试解析器。

目前我正在做的是手动更改我的包的内部变量,但这是一个不好的做法。

谢谢你。

标签: gotesting

解决方案


我认为上一个问题的答案如何在 Golang 中测试参数的传递?描述了如何在测试期间修改 os.Args。

tomasz声明“ os.Args 中的第一个值是可执行文件本身的(路径),因此 os.Args = []string{"cmd", "-user=bla"} 应该可以解决您的问题。您可以看看在标准包的标志测试中,他们正在做类似的事情。”


推荐阅读