go test命令参数问题
kangaroo835127729 · · 6155 次点击 · · 开始浏览go test命令参数问题
在使用go test对go代码进行单元测试的时候,遇到关于命令参数的问题,google了一下,没有找到很好的说明,其实就是一些细节而已。
问题是这样的,在进行单元测试的时候,我希望输入一些命令行参数来控制程序的运行。
参考go官方文档,只需要在go test后面加上-args和参数就可以了
例如
go test -args -classpath E:\testcase HelloWorld
也就是上面的
-classpath E:\testcase HelloWorld
是我输入的参数,但是却又这样的错误:
flag provided but not defined:-classpath
flag provided but not defined:-classpath
意味着go test把-classpath也当成自己的参数去解析了,而不是把-args后面的所有字符串都当成是我程序输入的参数
这没有办法,我只好在程序中吧-classpath更改成classpath,于是命令行如下
go test -args classpath E:\testcase HelloWorld
这样勉强解决了问题,却因为go test的原因改变了我的源程序。
另外,当我希望打印调试信息,也就是为go test增加-v参数的时候,也遇到一个小问题,我是这样输入的
go test -v -args classpath E:\testcase HelloWorld
在源代码这,我通过os.Args去获取命令行参数,但是-v会被当成我命令行的一个输入,而不是被忽略。原则上来说,应该是-args以后才被当成是命令行参数,而事实上go test没有完成这个效果。于是我又只能修改源程序以完成测试。
go test过程中,需要使用命令行参数的情况比较少,但是我还是遇到了,而且出现了一些意想不到的问题,说明go test并不是很完美。另外我是刚开始接触go语言,也许有更好的办法或者理解不对,这里只是替自己做一个笔记,请多包涵。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
go test命令参数问题
在使用go test对go代码进行单元测试的时候,遇到关于命令参数的问题,google了一下,没有找到很好的说明,其实就是一些细节而已。
问题是这样的,在进行单元测试的时候,我希望输入一些命令行参数来控制程序的运行。
参考go官方文档,只需要在go test后面加上-args和参数就可以了
例如
go test -args -classpath E:\testcase HelloWorld
也就是上面的
-classpath E:\testcase HelloWorld
是我输入的参数,但是却又这样的错误:
flag provided but not defined:-classpath
flag provided but not defined:-classpath
意味着go test把-classpath也当成自己的参数去解析了,而不是把-args后面的所有字符串都当成是我程序输入的参数
这没有办法,我只好在程序中吧-classpath更改成classpath,于是命令行如下
go test -args classpath E:\testcase HelloWorld
这样勉强解决了问题,却因为go test的原因改变了我的源程序。
另外,当我希望打印调试信息,也就是为go test增加-v参数的时候,也遇到一个小问题,我是这样输入的
go test -v -args classpath E:\testcase HelloWorld
在源代码这,我通过os.Args去获取命令行参数,但是-v会被当成我命令行的一个输入,而不是被忽略。原则上来说,应该是-args以后才被当成是命令行参数,而事实上go test没有完成这个效果。于是我又只能修改源程序以完成测试。
go test过程中,需要使用命令行参数的情况比较少,但是我还是遇到了,而且出现了一些意想不到的问题,说明go test并不是很完美。另外我是刚开始接触go语言,也许有更好的办法或者理解不对,这里只是替自己做一个笔记,请多包涵。