我正在使用Go开发一个Web应用程序.到目前为止一直很好,但现在我正在将wercker整合为CI工具,并开始关注测试.但我的应用程序在很大程度上依赖于Cobra / Viper配置/标志/ environment_variables方案,我不知道如何在运行我的测试套件之前正确初始化Viper值.任何帮助将非常感激.
当我使用Cobra / Viper或任何其他CLI帮助程序组合时,我这样做的方法是让CLI工具运行一个函数,其唯一目的是获取参数并将它们传递给另一个将执行实际工作的方法.
这是使用Cobra的简短(和愚蠢)示例:
package main import ( "fmt" "os" "github.com/spf13/cobra" ) func main() { var Cmd = &cobra.Command{ Use: "boom",Short: "Explode all the things!",Run: Boom,} if err := Cmd.Execute(); err != nil { fmt.Println(err) os.Exit(-1) } } func Boom(cmd *cobra.Command,args []string) { boom(args...) } func boom(args ...string) { for _,arg := range args { println("boom " + arg) } }
原文地址:https://www.jb51.cc/go/186934.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。