💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 单测 | 类型 | 格式 | 作用 | | --- | --- | --- | | 测试函数 | 函数名前缀为Test | 测试程序的一些逻辑行为是否正确 | | 基准函数 | 函数名前缀为Benchmark | 测试函数的性能 | 命令: go test 在包目录内,所有以`_test.go`为后缀名的源代码文件都是`go test`测试的一部分,不会被`go build`编译到最终的可执行文件中。 `go test`命令会遍历所有的`*_test.go`文件中符合上述命名规则的函数 ## 测试函数的格式 ~~~go func TestName(t *testing.T){ // ... } eg: func TestCalc(t *testing.T) { c := Calc(2, 3) n := 5 fmt.Println(c == n) } ~~~ >go test -v 可查看测试的函数名称和测试时间 > go test -v -run="xxx" eg:go test -v -run="Su" 函数名称:TestSub 它对应一个正则表达式,只有函数名匹配上的测试函数才会被`go test`命令执行。 > go test -conver 测试代码覆盖率 # 基准测试 ~~~go func BenchmarkName(b *testing.B){ // ... } func BenchmarkSub(b *testing.B) { c := Sub(5, 3) n := 2 fmt.Println(c == n) } ~~~ 命令: >go test -bench=Name eg:go test -bench=Sub ~~~bash go test -bench=. ~~~ 如果Name是“.”,代表运行文件所有的基准方法 > go test -bench=Name -benchmem 可获得内存分配的统计数据