强制重新测试或禁用测试缓存

新手上路,请多包涵

问题:

当我两次运行相同的 go test 时,第二次运行根本没有完成。结果是第一次运行时缓存的结果。

 PASS
ok      tester/apitests    (cached)

链接

我已经检查过 https://golang.org/cmd/go/#hdr-Testing_flags 但没有为此目的的 cli 标志。

问题:

是否有可能强制 go test 始终运行测试而不缓存测试结果。

原文由 Simon Frey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 966
2 个回答

测试标志文档 中描述了一些选项:

  • go clean -testcache : 使所有测试结果失效
  • 在测试运行中使用不可缓存的标志。惯用的方法是使用 -count=1

也就是说,更改代码或测试代码会使缓存的测试结果无效(使用本地文件或环境变量时也有扩展逻辑),因此您不需要手动使测试缓存无效。

原文由 Marc 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 Go11 中,我无法使用 GOCACHE 和模块禁用缓存,我使用 -count=1 代替:

 go test -count=1

在 Go11 之前:

 GOCACHE=off go test

或者,清理测试缓存并再次运行测试:

 go clean -testcache && go test

原文由 Muhammad Soliman 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题