go test通过-run和-bench参数配合正则表达式可精准运行指定测试函数或基准测试,结合-v、-json和-coverprofile可查看详细执行过程及生成覆盖率报告。

go test
说起
go test
_test.go
Test
Benchmark
最常用的莫过于
-v
ok
FAIL
-v
然后是
-run
-run
go test -run TestUser
TestUser
go test -run "TestUser/Add"
立即学习“go语言免费学习笔记(深入)”;
与
-run
-bench
go test -bench .
go test -bench BenchmarkProcessData
BenchmarkProcessData
-benchtime
-benchmem
-benchtime
5s
-benchmem
有时候,测试失败了,你想看看是哪里出了问题,
-failfast
go test
还有一个
-count
go test -count 10
说到并行,
-parallel
go test
go test -parallel 4
当然,还有一些更高级的参数,比如
-race
go test -race
-race
还有
-timeout
这些参数的组合使用,才是
go test
go test
要精准地选择运行哪些测试,
go test
-run
-bench
举个例子,假设你有一个
user_test.go
TestUserCreation
TestUserDeletion
TestUserUpdate
go test -run TestUserCreation
这会精确地运行
TestUserCreation
如果你的测试函数名更复杂,比如
TestUserGroup/AddMember
TestUserGroup/RemoveMember
/
go test -run "TestUserGroup/" # 运行所有 TestUserGroup 下的子测试 go test -run "TestUserGroup/Add" # 只运行 TestUserGroup/AddMember
这里的正则表达式是 Go 自己的
regexp
.
*
^
$
go test -run "Test[^Slow]"
对于基准测试 (
Benchmark
-bench
data_processor_test.go
BenchmarkProcessSmallData
BenchmarkProcessLargeData
go test -bench BenchmarkProcessSmallData
这会只运行
BenchmarkProcessSmallData
.
go test -bench .
通常,运行基准测试时,我还会加上
-run=^$
go test -run=^$ -bench . -benchtime 5s -benchmem
这行命令的意思是:不运行任何常规测试,运行所有基准测试,每个基准测试运行至少 5 秒,并且显示内存分配情况。通过这种方式,我们能非常精细地控制测试的范围和深度。
go test
要深入了解
go test
-v
-json
-coverprofile
首先是
-v
go test
-v
PASS
FAIL
go test -v
你会看到类似这样的输出:
=== RUN TestSomething
=== RUN TestSomething/SubTestA
=== PAUSE TestSomething/SubTestA
=== CONT TestSomething/SubTestA
--- PASS: TestSomething (0.00s)
--- PASS: TestSomething/SubTestA (0.00s)
PASS
ok your/module/path 0.004s这清晰地展示了测试的层级和执行顺序。
接下来是
-json
-json
go test -json
输出会是一系列 JSON 行,每行代表一个事件。你可以用管道将其传递给其他工具进行解析:
go test -json | jq . # 如果你安装了jq工具,可以格式化查看
这比解析纯文本日志要可靠和方便得多。
最后是
-coverprofile
go test -coverprofile=coverage.out
这条命令会运行所有测试,并将覆盖率数据写入
coverage.out
go tool cover
go tool cover -html=coverage.out -o coverage.html
这会生成一个
coverage.html
以上就是Golang使用go test命令参数详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号