在运行go test的时候,有时候会发现测试并没有真正的执行,而是报出诸如:
=== RUN TestLoadForumById
— PASS: TestLoadForumById (4.16s)
PASS
ok demosample/note/feature/forum (cached)
结果被cache的问题
这个是由于go引入的cache机制导致的。大致就是如果代码没有发生变更的话,会cache当前go test的结果。
如果要关闭这个功能,可以尝试以下几个方法:
- 在go test的参数上增加-count=1
- 直接禁止掉cache功能: GOCACHE=off go test
- 执行go test前,清理cache数据:go clean -testcache
为了避免一些奇怪的问题,这里还是推荐用#3方案
具体原因大家可以参考go的相关文档
参考资料:
https://stackoverflow.com/questions/48882691/force-retesting-or-disable-test-caching