go 測試依賴 專案根目錄

2021-10-20 20:55:46 字數 1354 閱讀 5264

眾所周知, go的測試深受吐嘈, 整個專案執行並不會有依賴問題, 但是分開測試時, 常常會提示無法找到依賴

原理: 借助gopath和gomod兩種方式實現專案目錄的獲取

ps: 之所以使用exec.command(「go」, 「env」, 「gomod」), 不使用os.getenv(「gomod」),感興趣的可以試試

func

projectpath()

(path string

)// gomod

// in go source code:

// // check for use of modules by 'go env gomod',

// // which reports a go.mod file path if modules are enabled.

// stdout, _ := exec.command("go", "env", "gomod").output()

// gomod := string(bytes.trimspace(stdout))

stdout,

_:= exec.

command

("go"

,"env"

,"gomod").

output()

path =

string

(bytes.

trimspace

(stdout)

)if path !=

""// gopath

filedir,

_:= os.

getwd()

path = os.

getenv

("gopath"

)// < go 1.17 use

ss = strings.

split

(filedir, path)

if path !=""}

}return

}

經測試, linux上, 任何路徑下的測試檔案均可以執行, 不會缺少依賴檔案

來自我的小站:

C 獲取專案根目錄

c 獲取專案根目錄,以下圖專案為例,要定位到目錄tmp中,下面為參考 獲取根目錄測試 directoryinfo rootdir directory.getparent environment.currentdirectory string root rootdir.parent parent fu...

Freemarcker獲取專案根目錄

現在知道了freemarker模板技術,發現在用freemarker之後引入到檔案中的css和js檔案都沒有起作用,在jsp頁面中還可以用 來設定絕對路徑,請問怎麼樣在ftl檔案中設定標籤的值?還有,生成靜態頁面之後怎麼樣顯示使用者登陸了的資訊?全部採用絕對定位即可,比如我的使用,在乙個全域性mac...

python 獲取專案根目錄

感謝大佬的blog 獲取專案根目錄方法之一,一會有別的方法再更新 windows import os curpath os.path.abspath os.path.dirname file rootpath curpath curpath.find myproject len myproject ...