Golang中testing包用于单元和基准测试,测试文件以_test.go结尾,测试函数以Test开头并接收*testing.T参数;通过go test命令运行测试,-v显示详情,-run按名称过滤测试;支持覆盖率分析,使用-go test -coverprofile生成数据,go tool cover -html查看HTML报告;基准测试以Benchmark开头,用-bench标志运行;推荐表格驱动测试结合t.Run实现子测试,可并行执行t.Parallel();t.Cleanup()用于注册测试后清理操作;掌握这些方法可提升测试效率与代码质量。

在Golang中,testing 包是标准库中用于编写单元测试和基准测试的核心工具。它无需额外安装,配合 go test 命令即可运行测试。下面介绍常见的测试运行方法和技巧,帮助你高效使用 Golang testing 框架。
测试文件以 _test.go 结尾,与被测代码放在同一包中。测试函数必须以 Test 开头,参数为 *testing.T。
例如,对 math.go 中的加法函数进行测试:
对应测试文件 math_test.go:
立即学习“go语言免费学习笔记(深入)”;
func TestAdd(t *testing.T) {使用 go test 命令运行当前目录下的所有测试:
go test显示更详细输出(包括运行了哪些测试):
go test -v只运行名称匹配某个模式的测试(如测试函数名包含 "Add"):
go test -run TestAdd支持正则表达式,比如运行所有以 TestA 开头的测试:
go test -run ^TestAGolang 支持生成测试覆盖率报告。使用以下命令生成覆盖率数据:
go test -coverprofile=coverage.out生成 HTML 可视化报告:
go tool cover -html=coverage.out直接查看覆盖率百分比:
go test -cover按函数级别显示覆盖情况:
go test -cover -covermode=count -coverprofile=count.out基准测试函数以 Benchmark 开头,接收 *testing.B 参数。例如:
func BenchmarkAdd(b *testing.B) {运行基准测试:
go test -bench=.跳过普通测试,仅运行基准测试:
go test -run=^$ -bench=.指定单次迭代目标时间(如每次运行 3秒):
go test -bench=. -benchtime=3s推荐使用表格驱动测试来验证多种输入场景:
func TestAdd(t *testing.T) {可单独运行某个子测试:
go test -run TestAdd/负数测试如果测试之间无依赖,可使用 t.Parallel() 并行运行:
func TestSomething(t *testing.T) {需要在测试结束时执行清理操作,使用 t.Cleanup():
func TestWithCleanup(t *testing.T) {以上就是如何在Golang中使用testing框架运行测试_Golang testing框架测试运行方法汇总的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号