SuperAPI AI 工具集

go-testing

测试与质量

查看项目

更新于 10-16 05:48

技能介绍

用途:指导按 Go 标准库 testing 包编写与运行 Go 单元测试,无需外部库,覆盖单元测试、基准测试、模糊测试和示例函数。

主要能力与约定:测试文件必须以 _test.go 结尾,仅由 go test 纳入构建;测试函数须符合 func TestXxx(*testing.T),Xxx 首字母不能是小写。同包测试可访问未导出标识符,_test 后缀包仅测导出 API,两种风格可同目录共存。报告失败可用 t.Errorf、t.Error 继续执行,或用 t.Fatalf、t.Fatal 立即停止;检查多个独立条件时优先 Errorf。表驱动测试是处理多输入的惯用模式,用 t.Run 生成命名子测试,可按 go test -run TestParent/SubName 单独运行;并行测试用 t.Parallel(),Go 1.22 前在表驱动中需先执行 tc := tc 捕获循环变量。清理用 t.Cleanup,按后进先出执行;测试辅助函数首行调用 t.Helper() 让报错定位到调用处;t.TempDir() 创建自动清理的临时目录;t.Setenv 设置环境变量并在测试后恢复,不可用于并行测试。跳过测试用 t.Skip、t.Skipf 或 t.SkipNow;示例函数通过 // Output: 注释校验输出,无输出注释则只编译不执行;TestMain 用于包级初始化与收尾,须调用 m.Run() 后 os.Exit(code)。

常用命令:go test ./...、go test -v ./...、go test -run TestAdd ./...、go test -race ./...、go test -cover ./...、go test -short ./...、go test -timeout 30s ./...、go test -bench=. -benchmem ./...,生成覆盖率报告可用 go test -coverprofile=coverage.out ./... && go tool cover -html=coverage.out。

限制:资料未提供收费、价格、平台或效果信息;基准测试、模糊测试与更高级模式仅给出参考文件名称,具体内容暂未提供。