go test
Go语言基础之单元测试
参考URL: https://www.cnblogs.com/nickchen121/p/11517443.html
go 语言的test代码写起来和运行起来都相对简单。
但是也有遵循一定的命名规则:
- 文件名要以 ‘_test.go’ 结尾
- 测试函数以 ‘Test’ 开头
- 测试函数的签名必须接收一个指向testing.T类型的指针作为参数,并且该测试函数不能返回任何值
go test命令
go test命令(Go语言测试命令)完全攻略
参考URL: http://c.biancheng.net/view/124.html
这里介绍几个常用的参数:
-bench regexp 执行相应的 benchmarks,例如 -bench=.;
-cover 开启测试覆盖率;
-run regexp 只运行 regexp 匹配的函数,例如 -run=Array 那么就执行包含有 Array 开头的函数;
-v 显示测试的详细命令。
demon
go test -run "TestDeterministicPrivateKeyGeneration" bls_test.go bls.go types.go
go test单元测试变量undefined错误
第一次开发需求的时候遇到的问题,用go test xxx_test.go xxx.go的命令执行单个测试文件的时候,在xxx.go中可能引用到包下其他文件的变量,这时候编译就会报错:变量undefined。
解决方法
如果引用的文件不太多的话,把所有用到的文件一同编译就行了。如xxx.go文件中用到了aaa.go中的变量,那执行
go test xxx_test.go xxx.go aaa.go
如果是引用关系比较复杂,存在多级引用,建议直接在包目录下执行go test,运行该包下所有的测试文件。