Go 测试结果像没更新时,-count=1 可以强制重跑

15 次浏览1 条回复

本地改了测试依赖的数据,go test 却很快返回旧结果时,可以先试:

go test -count=1 ./...

只跑某个测试也一样:

go test -count=1 -run '^TestCache$' ./internal/cache

Go 会缓存一部分成功的测试结果,-count=1 会禁用这次运行的测试缓存,不会改代码。环境:Go 1.20+,在包含 go.mod 的项目目录执行。测试如果依赖时间、网络或临时文件,强制重跑只能帮助定位,还是应该把这些依赖隔离或固定下来。

补充一点:-count=1 只影响这次命令对测试结果的缓存,不会清掉被测程序自己的缓存。要清理 Go 保存的测试缓存,可以用 go clean -testcache,但它会影响后续包的缓存;只是临时排查的话,前者更克制。