每次执行单元测试,如果代码没有任何变动(包括可能读取的配置文件),则后续的执行,会直接读取缓存中的测试结果,同时会有一个 cached 标记。
$ go test -run ^TestPrint$ test/hello
ok test/hello 0.113s
$ go test -run ^TestPrint$ test/hello
ok test/hello (cached)
有时候可能希望能执行实际的测试,比如看日志输出,想要禁用缓存,怎么办?官方文档说明如下:
When ‘go test’ runs in package list mode, ‘go test’ caches successful package test results to avoid unnecessary repeated running of tests. To disable test caching, use any test flag or argument other than the cacheable flags. The idiomatic way to disable test caching explicitly is to use -count=1.
也就是说加上 -count=1
即可以禁用缓存。