3 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用...
(省略號)運(yùn)算符來測試當(dāng)前包的所有子包。像這樣:go test ./...
。
如果您做一些更復(fù)雜的事情,例如使用該list
工具,您可能想稍后嘗試其他解決方案。這樣的(例如)go test $(go list ./... | grep [regex])
。這對于vendor
從測試中排除目錄很有用。
您可能想知道的另一件事是gt
可以在此處找到的命令https://godoc.org/rsc.io/gt并將緩存添加到go test
命令中。
最后,請不要猶豫,閱讀https://blog.golang.org/cover以獲取有關(guān) golang 代碼覆蓋率分析的信息。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
我覺得這很煩人,go test ./...當(dāng)從項(xiàng)目根目錄運(yùn)行時(shí),實(shí)際上會(huì)從pkg/pkg_name/文件夾運(yùn)行。有一種方法可以通過cwd在init()helper 函數(shù)中設(shè)置來將測試設(shè)置為項(xiàng)目根。
我在這里找到了解決方案您可以在 _file 中嘗試以下代碼段:
func init() {
_, filename, _, _ := runtime.Caller(0)
dir := path.Join(path.Dir(filename), "../..") // change to suit test file location
err := os.Chdir(dir)
if err != nil {
panic(err)
}
}
上面的這段代碼適用于我在pkg/$name/$name_test.go.

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
只是運(yùn)行sudo go test -v ./...
可能會(huì)失敗,因?yàn)槟赡軟]有為 GO 設(shè)置根環(huán)境,就像您設(shè)置非根環(huán)境一樣。
您可以重置根目錄中的所有內(nèi)容,或者執(zhí)行以下簡單步驟:
sudo -E go test -v ./...
這將以 root 身份運(yùn)行,但保留您的 env 設(shè)置。
添加回答
舉報(bào)