这个参数和 -run 配合也挺实用:先用 go test -count=1 -run 'TestFoo' ./path/to/pkg 缩小到具体用例,确认不是缓存后再扩大范围。要是怀疑执行顺序或共享状态,再单独加 -shuffle=on,别把缓存问题和顺序问题混在一起查。
补一个容易混淆的点:-count=1 只是不复用测试结果,不等于完全禁用 Go 的构建缓存。要确认测试代码确实重新编译了,可以看输出里的编译动作,或在改了生成文件、环境变量后先确认输入已经更新。平时 CI 用 go test -count=1 ./... 通常就够了,没必要每次都 go clean -cache。