Golang常用工具

一般格式:go command [arguments]

build

  • build

    最常用的命令,用来编译go文件

    跨平台编译,如env GOOS=linux GOARCH=amd64 go build在Linux系统、amd64架构编译

install

  • install

    同为编译,和build的不同在于编译后会将输出文件打包成库放在pkg下面

get

  • get

    用于获取go第三方包,默认从git repo获取最新版本,如go get -u github.com/go-sql-driver/mysql

fmt

  • fmt

    统一代码风格,go fmt

test

  • test

    运行当前包目录下的test,如go testgo test -v,test文件命名是xxx_test.go

关于写test case:

  • test命名为TestXxxx

  • test case 的参数为:t *testing.T 或者 b *testing.B (用于测试性能)

  • t.Errorf() 用于打印错误信息,同时跳过整个test case

  • t.SkipNow() 为跳过当前test,并且直接处理下一个test case,要写在test case的第一行

  • t.Run() 来执行subtests,可以做到控制test输出以及test的顺序

  • TestMain(m *testing.M) 初始化test,使用m.Run()来调用其他tests,可以用来完成一些初始化;如果没有调用m.Run(),那么处了TestMain以外其他的tests就不会被执行

关于benchmark:

  • benchmark函数一般以Benchmark开头,如BenchmarkXxx
  • 参数为: b *testing.B
  • 每次执行一般会跑b.N
  • 在执行过程中根据实际case的执行时间是否稳定来调整b.N的次数直至稳定
  • 命令行中,命令为:go test -bench=.
Licensed under CC BY-NC-SA 4.0
自认为是幻象波普星的来客
Built with Hugo
主题 StackJimmy 设计