日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語言 正文

關(guān)于golang?test緩存問題_Golang

作者:熊貓實(shí)驗(yàn)室 ? 更新時(shí)間: 2022-11-03 編程語言

在使用vscode進(jìn)行debug golang 時(shí),出現(xiàn)test結(jié)果緩存的情況
導(dǎo)致若干次test結(jié)果一致問題
設(shè)置go test不用緩存
官方說明
https://pkg.go.dev/cmd/go#hdr-Test_packages
設(shè)置:
找到設(shè)置

找到test設(shè)置

添加"-count=1"

再進(jìn)行run test就可以了

補(bǔ)充:下面再次介紹下go test 緩存

在執(zhí)行g(shù)o test的時(shí)候發(fā)現(xiàn), 每次執(zhí)行時(shí)間竟然一致, 然后發(fā)現(xiàn)是go test又緩存

Go test 支持兩種模式:

1.Local directory mode, 在調(diào)用 go test 時(shí),沒有加參數(shù) (比如 go test 或 go test -v)。在這種模式下,緩存會(huì)被禁用。 會(huì)編譯當(dāng)前目錄下的代碼和測(cè)試,然后運(yùn)行測(cè)試二進(jìn)制程序。

2.Package list mode,執(zhí)行 go test時(shí),指定文件路徑 (比如 go test math, go test ./...)。在這種模式下,會(huì)編譯并測(cè)試路徑列出的每個(gè)測(cè)試文件。go test 會(huì)緩存成功的測(cè)試結(jié)果,以避免不必要的重復(fù)運(yùn)行測(cè)試。當(dāng)再次執(zhí)行測(cè)試時(shí),會(huì)檢查緩存中對(duì)應(yīng)的測(cè)試結(jié)果是否 OK, 如果 OK 會(huì)重新顯示之前的輸出,而不會(huì)運(yùn)行測(cè)試二進(jìn)制文件。此時(shí) go test 會(huì)打印 '(cached)' 標(biāo)識(shí)。
回過頭來再看下項(xiàng)目的測(cè)試腳本:

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

運(yùn)行在 Package list mode, 所以單測(cè)通過后的二次測(cè)試, 會(huì)走 cache。

解決方案

有以下三種方式, 在測(cè)試中禁用緩存:

1.執(zhí)行 go test 添加 --count=1 參數(shù)(推薦,效率高),以上面????例子:

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

2.Go 官方提供 clean工具,來刪除對(duì)象文件和緩存文件, 不過這種方式相對(duì)麻煩:

go clean -testcache // Delete all cached test results

3.設(shè)置 GOCACHE 環(huán)境變量。GOCACHE 指定了 go 命令執(zhí)行時(shí)緩存的路徑,以便之后被復(fù)用。 設(shè)置 GOCACHE=off 即可禁用緩存。(go 1.12 之后,不能將其設(shè)置為off)

原文鏈接:https://www.cnblogs.com/elve960520/p/16672731.html

欄目分類
最近更新