gotest 是有缓存的

gotest 是有缓存的

(金庆的专栏 2018.10)

用 gotest 运行一个测试,往 mongodb 中插入一条,发现有时灵,有时不灵。

因为错误地怀疑 mgo 用错了,耗费了不少时间。
最终发现是因为 gotest 是有缓存的,输出的是上次运行的结果,但是并没有实际运行代码。

运行有效是因为代码刚改过,测试时会实际运行。

最终也是无意间发现的。给 mgo 开启了调试日志,然后比较2次运行,发现输出是一样的,
只有一行不同:

ok      mail-server/server      0.519s
ok      mail-server/server      (cached)

明确显示了第2次是缓存。前面运行了几十次都忽略了 cached 这个输出。

为了禁止缓存,可加上 -count=1 参数:
go test -count=1

猜你喜欢

转载自blog.csdn.net/jq0123/article/details/83511053