在此先感謝您的幫助。在我的 Mac 上,當我執行一個go test ./...正確的“路徑”在輸出中輸出:ok github.com/cnuss/server 0.008sok github.com/cnuss/server/database 0.008s? github.com/cnuss/server/handlers [no test files]ok github.com/cnuss/server/stats 0.014s但是,當我在 Ubuntu 14.04 Trusty 容器中構建時,路徑已被“_”(下劃線)替換:ok _/tmp/cnuss/server 0.003sok _/tmp/cnuss/server/database 0.003s? _/tmp/cnuss/server/handlers [no test files]ok _/tmp/cnuss/server/stats 0.008s路徑的變化也反映在-coverprofile輸出文件中,這反過來影響我正在使用的一些覆蓋工具。所以問題是,什么會影響執行時解析的路徑go test?我的 Mac Book 上的行為是正確的行為。
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
您可能沒有GOPATH在 Linux 環境中設置。
如果我src/foo/foo.go在當前目錄中創建一個包含內容的文件package foo,我可以看到不同之處:
$ unset GOPATH
$ go test ./src/foo
? _/home/james/.../src/foo [no test files]
$ export GOPATH=`pwd`
$ go test ./src/foo
? foo [no test files]
如果沒有GOPATH設置(或在 之外有一個包GOPATH),它就好像這是一個相對導入。
- 1 回答
- 0 關注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消