第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使 Go 測(cè)試與文件系統(tǒng)一起工作

如何使 Go 測(cè)試與文件系統(tǒng)一起工作

Go
互換的青春 2023-07-10 14:27:42
我在使用 VsCode 測(cè)試 Go 應(yīng)用程序時(shí)遇到一些問題。這是我的 launch.json{  "name": "Test",  "type": "go",  "request": "launch",  "mode": "test",  "program": "${workspaceFolder}/test",  "env": {},  "args": []}現(xiàn)在我遇到的問題是我的應(yīng)用程序應(yīng)該在子文件夾中寫入文件(atm 是 ./temp)。為此,我有兩個(gè)函數(shù),第一個(gè)是確定文件路徑func getFilePath() string {    dir, err := filepath.Abs(filepath.Dir(os.Args[0]))    if err != nil {        panic(err)    }    return dir + "/temp/ocicd-config.yaml"}另一個(gè)用于保存文件func SaveToYaml(Config Structs.Project) {    fmt.Println("Saving Config")    yaml, err := yaml.Marshal(Config)    if err != nil {        panic(err)    }    fmt.Println(string(yaml))    ioutil.WriteFile(getFilePath(), yaml, 0644)}以及加載文件func Load() Structs.Project {    fmt.Println("Loading Config")    file, err := ioutil.ReadFile(getFilePath())    if err != nil {        panic(err)    }    project := Structs.Project{}    err = yaml.Unmarshal(file, &project)    if err != nil {        panic(err)    }    return project}現(xiàn)在的問題是,VsCode 使應(yīng)用程序在 ./test 子文件夾中運(yùn)行,這使我的應(yīng)用程序嘗試從 ./test/temp 加載并保存到 ./test/temp,這不是我想要的。我嘗試更改我的 launch.json 以實(shí)際使用 ${workspace} 作為程序并使用“./test”作為參數(shù),但這會(huì)使測(cè)試完全停止工作?,F(xiàn)在我很迷失。我有什么想法可以解決這個(gè)問題嗎?
查看完整描述

1 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

您應(yīng)該在文件系統(tǒng)之上使用一個(gè)抽象層(而不是),而不是讓測(cè)試直接寫入磁盤上的文件(此模型可能會(huì)出現(xiàn)并發(fā)問題)ioutil。

github.com/spf13/afero是一個(gè)用于此目的的很棒的庫。對(duì)于您的測(cè)試用例,您可以簡(jiǎn)單地傳遞 MemFs 層而不是 OsF。


查看完整回答
反對(duì) 回復(fù) 2023-07-10
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)