goland学习-go常用命令使用
1.跨平台编译:env GOOS=linux GOARCH=amd64 go build
2.获取go第三方包:go get -u github.com/go-sql-driver/mysql 从github上面获取mysql并安装到本地
3.完全标准化go代码:go fmt
4.go test模块
a)运行当前包目录下面的tests
b)常用命令go test或者go test -v
c)test的例子,一般按照XXX_test.go命名
d)每个test文件一定要import testing
e)每一个test文件里面的每一个test case一定要符合Test的形式,否则不执行
f)test case的入参为 t *testing.T或者b *testing.B (t.Errof("")退出test case)
g)t.SkipNow()可以当前想要跳过当先运行的test case,一定要写在test case的第一行
h)test顺序,因为go test 并不会保证test case按照编写顺序运行,只是大多数情况会按照顺序执行,这个使用使用t.Run()函数
t.Run("填入名称",函数名称)
这个时候testPrint会比testPrint2优先执行
i)使用testMain来初始化test,比如数据库连接,文件打开.当test的文件里面写了TestMain之后其他的test case会不会执行取决于TestMain有没有调用m.Run(),如果没有写,那么其他的test case 都不会执行.
5. go test -bench=.
a)benchmark函数一般以benchmark开头
b)benchmark的case一般会跑b.N次,而且没吃执行都会如此
c)实际运行时间会根据实际case的执行时间是否稳定郑家b.N的次数.(就是会一直跑直到运行时间稳定为止)
d)benchmark 的case本身也是test case之一,所以如果写了TestMain那么TestMain也要带有m.run()才会运行
e)如果是带了-bench参数只会测试带有benchmark签名的函数
f)要注意的是benchmark测试的函数本身不会到达稳态,那么benchmark的命令会永远的执行不完.