【问题标题】:How to debug lack of test caching如何调试缺少测试缓存
【发布时间】:2019-11-01 17:04:41
【问题描述】:

我正在运行一个 Go 测试,我认为当我多次运行它时应该缓存它,但是,Go 每次都在运行该测试。

我是否可以使用标志或环境变量来帮助确定 Go 决定不缓存此特定测试的原因?

【问题讨论】:

  • 您正在运行的go test 命令到底是什么?您使用的参数会影响结果是否被缓存。还有什么让你认为它们没有被缓存?
  • 我正在使用 go test ./mypkg -run MySpecificTest 运行单个测试。当我多次运行大多数测试时,我会在输出中看到(cached)。当我运行这个测试时,我一遍又一遍地看到测试时间表明测试正在运行不止一次。我是 Go 语言的贡献者,我曾在 Go 主会议的舞台上发表过关于 Go 的演讲。

标签: go testing


【解决方案1】:

在环境中设置GODEBUG=gocachetest=1,运行两次测试并在测试运行之间区分输出。

如果这还不够,您可以使用GODEBUG=gocachehash=1 来确定缓存哈希的组成部分。

【讨论】:

  • 这实际上是您发布时遇到的问题吗?或者这只是“我有一些知识,我将把它表述为一个问题,以便我可以发布它”的一个案例?
  • 是的,这实际上是我遇到的问题。在发布问题之前,我环顾了大约 20 分钟,大约 5 分钟后找到了答案,并想我会发布它,以便将来记住。围绕这些标志的文档并不好。
猜你喜欢
  • 1970-01-01
  • 2010-09-25
  • 2022-07-11
  • 2013-11-26
  • 2011-01-29
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 2014-12-01
相关资源
最近更新 更多