go test是Go语言执行测试的标准方式,通过_test.go文件中的Test开头函数进行单元测试,Benchmark开头函数进行性能测试,支持-v、-run等选项控制执行行为。

在Go语言中,go test 是执行测试的标准方式。只要按照约定编写测试文件,就可以轻松运行单元测试、性能测试,并查看覆盖率等信息。
测试文件命名与结构
Go的测试文件必须以 _test.go 结尾,且通常放在被测代码所在的包目录下。测试函数名必须以 Test 开头,且接收一个 *testing.T 参数。
例如,假设有一个文件 math.go,其中包含一个加法函数:
func Add(a, b int) int { return a + b}
对应的测试文件 math_test.go 应如下:
package mainimport "testing"func TestAdd(t *testing.T) { result := Add(2, 3) if result != 5 { t.Errorf("期望 5,但得到了 %d", result) }}
运行基本测试
在项目根目录或包含测试文件的目录下,执行以下命令运行测试:
go test
立即学习“go语言免费学习笔记(深入)”;
如果测试通过,输出类似:
ok example/math 0.001s
如果有失败,会显示错误信息和行号。常用选项包括:-v:显示详细输出,列出每个测试函数的执行情况 -run:用正则匹配测试函数名,运行指定测试。例如:go test -run=Add 只运行函数名包含 Add 的测试
性能测试(基准测试)
Go还支持基准测试,用于测量函数性能。基准函数以 Benchmark 开头,接收 *testing.B 参数。
在 math_test.go 中添加:
func BenchmarkAdd(b *testing.B) { for i := 0; i < b.N; i++ { Add(2, 3) }}
运行基准测试:
go test -bench=.
这将运行所有基准测试。输出示例:
BenchmarkAdd-8 1000000000 0.30 ns/op
表示每次操作平均耗时 0.3 纳秒。
测试覆盖率
Go内置了覆盖率统计功能。使用以下命令生成覆盖率数据:
go test -coverprofile=coverage.out
然后生成HTML报告:
go tool cover -html=coverage.out
浏览器会打开页面,直观显示哪些代码被测试覆盖,哪些没有。
基本上就这些。只要遵循命名规范,go test 就能自动发现并执行测试,配合简洁的API,让测试变得简单高效。
以上就是Golang如何使用go test命令执行测试的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1414076.html
微信扫一扫
支付宝扫一扫