我想通过编写一些侧重于测试整个二进制文件的抗回归测试来锁定golang程序的面向用户的命令行API 。“整体二进制”测试的意思是,go-test应该:
然而,这不是明显对我有什么做的是,在最佳实践去?如果有一个很好的go测试示例,您能指出我吗?
PS过去我一直在使用自动工具。我正在寻找类似于AT_CHECK的东西,例如:
AT_CHECK([echo "XXX" | my_binary -e arg1 -f arg2], [1], [],
[-f and -e can't be used together])
Run Code Online (Sandbox Code Playgroud)
只需main()一行即可:
import "myapp"
func main() {
myapp.Start()
}
Run Code Online (Sandbox Code Playgroud)
并myapp正确测试包装。
编辑:例如,流行的etcd conf服务器使用此技术:https : //github.com/coreos/etcd/blob/master/main.go
小智 5
我觉得你太努力了:我只是尝试了以下
func TestMainProgram(t *testing.T) {
os.Args = []string{"sherlock",
"--debug",
"--add", "zero",
"--ruleset", "../scripts/ceph-log-filters/ceph.rules",
"../scripts/ceph-log-filters/ceph.log"}
main()
}
Run Code Online (Sandbox Code Playgroud)
它工作正常。我可以很容易地从它做一个普通的表格测试或 goConvey BDD ......