SuperAPI AI 工具集

go-test

测试与质量

查看项目

更新于 10-16 05:48

技能介绍

用途:该技能用于辅助 Go 语言测试工作,基于 Go 标准库 testing 包,遵循 Go 简洁、无魔法、纯代码的风格,适用于运行 go test、编写 Go 单元测试与集成测试等场景。

主要能力:支持表驱动单元测试,用匿名结构体切片组织多组输入输出场景;支持 t.Run 子测试,实现细粒度报告与隔离;支持用 go test -race 检测并发内存访问的数据竞争;支持用 go test -bench 进行基准测试与内存分配分析;支持覆盖率报告与常见测试问题排查。

使用方式:测试文件以 _test.go 结尾,测试函数以 Test 开头并接收 *testing.T。运行命令为 go test ./...;启用竞争检测为 go test -race ./...;生成覆盖率报告为 go test -coverprofile=coverage.out ./... && go tool cover -html=coverage.out。基准测试函数接收 *testing.B,循环 b.N 次。

适用场景:Go 项目单元测试、集成测试、并发安全验证、性能与内存基准测量。

限制与建议:资料未提供该技能的安装方式、收费与平台信息。建议在 CI 中始终运行 go test -race ./...;使用 t.Run 子测试与 t.Cleanup 资源清理;避免在简单比较中引入重型断言库;避免测试中 goroutine 泄漏;支持 testing.Short() 跳过以加快本地测试。常见问题包括测试超时、无测试可运行、数据竞争等,可分别通过 -v -timeout、检查文件与函数命名、-race 加锁或通道解决。