我正在使用cobra
构建 CLI 并希望模拟使用不同选项/标志集运行的命令。我一直试图弄清楚如何使用 cobra API 在我的测试中设置标志,但还没有真正得到它。
我有这个:
// NewFooCmd returns a cobra.Command fitted to print output to the buffer for easier testing.
buf := &bytes.Buffer{}
cmd := package.NewFooCmd(buf)
cmd.Execute()
// some validations on the content of buf
到目前为止,我发现的最接近的是:
cmd.Flags().Set(name string, value string)
...但这似乎不对,因为虽然标志的名称都是字符串,但它们并不都将字符串作为值。int
即使我有一个标志并通过它似乎也不起作用string(1)
。
我在这里缺少一些简单的东西吗?