命令行执行单元测试
小于 1 分钟
一、样例代码
├── go.mod
└── tool
├── net.go
└── net_test.go
module github.com/ovn-org/libovsdb
go 1.20
二、执行单元测试
$ cd /home/libovsdb
$ go help test
# 执行包内部所有单元测试
# 其中 /tool 是 module github.com/ovn-org/libovsdb 的包路径
# golang 会自动找到该路径下的package
$ go test github.com/ovn-org/libovsdb/tool
# 查看执行结果 -v
# 执行部分函数 -run <unit_test_func_name>
$ go test -run TestGetUser -v github.com/ovn-org/libovsdb/tool
编译单元测试程序放到其他环境执行
# -c 表示生成二进制程序到pkg.test并且不运行
# 通过-o可以更改二进制程序名称
# 本地将生成 tester 二进制程序
$ go test -c -o tester github.com/ovn-org/libovsdb/tool
# 本地将生成 tool.test 程序
$ go test -c github.com/ovn-org/libovsdb/tool
# 相对路径 测试所有包
$ go test -c ./...
# 测试单个
$ go test -c ./internal/vnetstore
# 执行二进制程序
$ /home/tool.test --help
$ /home/tool.test -test.v -test.run FuncName