網站首頁 編程語言 正文
在使用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)
原文鏈接:https://www.cnblogs.com/elve960520/p/16672731.html
相關推薦
- 2022-09-14 python重寫方法和重寫特殊構造方法_python
- 2023-02-23 Rust個人學習小結之Rust的循環_Rust語言
- 2022-08-14 Redis+Caffeine兩級緩存的實現_Redis
- 2022-01-02 適合初學者學習ajax表單提交的全部代碼
- 2022-07-18 SpringMVC文件上傳功能實現
- 2022-09-25 ECharts如何在pycharm中運行
- 2022-05-10 SpringBoot端口已占用解決:配置端口號
- 2022-05-10 筆記本能連接 WiFi,但在瀏覽器中并不能訪問網頁的問題的四種方案;
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支