关于golang test缓存问题

 更新时间:2022年09月09日 14:51:50   作者:熊猫实验室  
这篇文章主要介绍了关于golang test缓存问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在使用vscode进行debug golang 时,出现test结果缓存的情况
导致若干次test结果一致问题
设置go test不用缓存
官方说明
https://pkg.go.dev/cmd/go#hdr-Test_packages
设置:
找到设置

找到test设置

添加"-count=1"

再进行run test就可以了

补充:下面再次介绍下go test 缓存

在执行go test的时候发现, 每次执行时间竟然一致, 然后发现是go test又缓存

Go test 支持两种模式:

1.Local directory mode, 在调用 go test 时,没有加参数 (比如 go test 或 go test -v)。在这种模式下,缓存会被禁用。 会编译当前目录下的代码和测试,然后运行测试二进制程序。

2.Package list mode,执行 go test时,指定文件路径 (比如 go test math, go test ./...)。在这种模式下,会编译并测试路径列出的每个测试文件。go test 会缓存成功的测试结果,以避免不必要的重复运行测试。当再次执行测试时,会检查缓存中对应的测试结果是否 OK, 如果 OK 会重新显示之前的输出,而不会运行测试二进制文件。此时 go test 会打印 '(cached)' 标识。
回过头来再看下项目的测试脚本:

CGO_ENABLED=1 go test -v --mod=vendor ./pkg/...

运行在 Package list mode, 所以单测通过后的二次测试, 会走 cache。

解决方案

有以下三种方式, 在测试中禁用缓存:

1.执行 go test 添加 --count=1 参数(推荐,效率高),以上面????例子:

CGO_ENABLED=1 go test -v --count=1 --mod=vendor ./pkg/...

2.Go 官方提供 clean工具,来删除对象文件和缓存文件, 不过这种方式相对麻烦:

go clean -testcache // Delete all cached test results

3.设置 GOCACHE 环境变量。GOCACHE 指定了 go 命令执行时缓存的路径,以便之后被复用。 设置 GOCACHE=off 即可禁用缓存。(go 1.12 之后,不能将其设置为off)

到此这篇关于golang test缓存问题的文章就介绍到这了,更多相关golang test缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一个Pod调度失败后重新触发调度的所有情况分析

    一个Pod调度失败后重新触发调度的所有情况分析

    这篇文章主要为大家介绍了一个Pod调度失败后重新触发调度的所有情况分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • golang连接池检查连接失败时如何重试(示例代码)

    golang连接池检查连接失败时如何重试(示例代码)

    在Go中,可以通过使用database/sql包的DB类型的Ping方法来检查数据库连接的可用性,本文通过示例代码,演示了如何在连接检查失败时进行重试,感兴趣的朋友一起看看吧
    2023-10-10
  • golang如何替换换行符

    golang如何替换换行符

    这篇文章主要介绍了golang如何替换换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 利用golang进行OpenCV学习和开发的步骤

    利用golang进行OpenCV学习和开发的步骤

    目前,OpenCV逐步成为一个通用的基础研究和产品开发平台,下面这篇文章主要给大家介绍了关于利用golang进行OpenCV学习和开发的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • Golang中实现数据脱敏处理的go-mask包分享

    Golang中实现数据脱敏处理的go-mask包分享

    这篇文章主要是来和大家分享一个在输出中对敏感数据进行脱敏的工作包:go-mask,可以将敏感信息输出的时候替换成星号或其他字符,感兴趣的小编可以跟随小编一起了解下
    2023-05-05
  • Go 语言入门学习之正则表达式

    Go 语言入门学习之正则表达式

    这篇文章主要介绍了Go 语言入门学习之正则表达式,文章基于GO语言的相关资料展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • Go语言中的函数详解

    Go语言中的函数详解

    函数是基本的代码块,用于执行一个任务。本文详细讲解了Go语言中的函数,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 详解Go语言中ErrGroup的使用

    详解Go语言中ErrGroup的使用

    本文主要为大家详细介绍了Go语言中errGroup的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-07-07
  • golang执行命令获取执行结果状态(推荐)

    golang执行命令获取执行结果状态(推荐)

    这篇文章主要介绍了golang执行命令获取执行结果状态的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-11-11
  • 解决golang中container/list包中的坑

    解决golang中container/list包中的坑

    这篇文章主要介绍了解决golang中container/list包中的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论