解决go test没有执行且结果被cache的问题

Posted by

在运行go test的时候,有时候会发现测试并没有真正的执行,而是报出诸如:

=== RUN   TestLoadForumById
— PASS: TestLoadForumById (4.16s)
PASS
ok      demosample/note/feature/forum   (cached)

结果被cache的问题
这个是由于go引入的cache机制导致的。大致就是如果代码没有发生变更的话,会cache当前go test的结果。
如果要关闭这个功能,可以尝试以下几个方法:

  1. 在go test的参数上增加-count=1
  2. 直接禁止掉cache功能: GOCACHE=off go test
  3. 执行go test前,清理cache数据:go clean -testcache

为了避免一些奇怪的问题,这里还是推荐用#3方案

具体原因大家可以参考go的相关文档

参考资料:

https://stackoverflow.com/questions/48882691/force-retesting-or-disable-test-caching

https://maiyang.me/post/2018-03-28-learning-go-test-cache/

Leave a Reply