2017-06-16 71 views
7

我試圖讓測試工作在我的本地開發機雲SDK版本是:159.0.0goapp測試爲什麼要在/ tmp中查找文件?

一切我讀過說我應該沒有變化GOROOT所以我不知道如何解決這個問題。

$ /用戶/布賴恩/谷歌雲SDK /平臺/ google_appengine/GOROOT /斌/ goapp測試

go: cannot find GOROOT directory: /tmp/go_sdk887571938/appengine/go_appengine/goroot 

布萊恩@布萊恩 - 的MacBook週四6月15日10時22分37秒〜/去/ SRC/skincarereview

$去ENV

GOARCH="amd64" 
GOBIN="" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="darwin" 
GOOS="darwin" 
GOPATH="/Users/bryan/go/" 
GORACE="" 
GOROOT="/usr/local/go" 
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" 
GO15VENDOREXPERIMENT="1" 
CC="clang" 
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common" 
CXX="clang++" 
CGO_ENABLED="1" 

布萊恩@布萊恩 - 的MacBook週四6月15日10時22分57秒〜/去/ src目錄/ skincarereview

個$ LS〜/谷歌雲SDK

total 408 
drwxr-xr-x 30 bryan staff 1020 Jun 14 20:31 .install 
-rw-r--r-- 1 bryan staff  980 Jun 14 20:30 LICENSE 
-rw-r--r-- 1 bryan staff  673 Jun 14 20:30 README 
-rw-r--r-- 1 bryan staff 162673 Jun 14 20:30 RELEASE_NOTES 
-rw-r--r-- 1 bryan staff  8 Jun 14 20:30 VERSION 
drwxr-xr-x 10 bryan staff  340 Jun 14 20:30 bin 
-rw-r--r-- 1 bryan staff 2734 Jun 14 20:30 completion.bash.inc 
-rw-r--r-- 1 bryan staff 2083 Jun 14 20:30 completion.zsh.inc 
drwxr-xr-x 3 bryan staff  102 Jun 14 20:30 help 
-rwxr-xr-x 1 bryan staff 1581 Jun 14 20:30 install.bat 
-rwxr-xr-x 1 bryan staff 3471 Jun 14 20:30 install.sh 
drwxr-xr-x 10 bryan staff  340 Jun 14 20:30 lib 
-rw-r--r-- 1 bryan staff  308 Jun 14 20:30 path.bash.inc 
-rw-r--r-- 1 bryan staff 1210 Jun 14 20:30 path.fish.inc 
-rw-r--r-- 1 bryan staff  31 Jun 14 20:30 path.zsh.inc 
drwxr-xr-x 6 bryan staff  204 Jun 14 20:30 platform 
-rw-r--r-- 1 bryan staff  40 Jun 14 20:30 properties 

布萊恩@布萊恩 - 的MacBook週四6月15日10:24:22〜/去/ src目錄/ skincarereview

$查找/ -name GOROOT 2> /開發/空

/Users/bryan/google-cloud-sdk/platform/google_appengine/goroot 

布萊恩@布萊恩 - 的MacBook週四6月15日10點28分43秒〜/去/ src目錄/ skincarereview

$回聲$ PATH

/Users/bryan/google-cloud-sdk/bin:/Users/bryan/go/src/:/Users/bryan/google-cloud-sdk/platform/google_appengine/goroot/bin/:/Users/bryan/google-cloud-sdk/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin 

看看main.go行155,我認爲錯誤正在拋出,我沒有看到「goroot」被設置的位置。

if fi, err := os.Stat(goroot); err != nil || !fi.IsDir() { 
    fmt.Fprintf(os.Stderr, "go: cannot find GOROOT directory: %v\n", goroot) 
    os.Exit(2) 
} 

回答

1

你可以嘗試,並按照recommendation of this answer

如果安裝出現混亂超出了理性(發生在我身上一次),只是刪除雲SDK以及您在$PATH中的任何引用。還完全卸載常規的Go安裝。

然後從頭開始。 Install Go, unpack google-cloud-sdk,運行安裝程序(如果需要,添加到$PATH),gcloud components install app-engine-go
Voila。

正如在同樣的答案中提到的,你不會在任何地方設置GOROOTit is set for you

+0

我已經從頭開始重新安裝2單獨的電腦。我犯了同樣的錯誤。 – BryanWheelock

+0

@BryanWheelock好的。我想我提到的答案的第一部分也沒有幫助? – VonC

+0

我刪除了GO和PATH。 我向Google發送了一些東西,問題在於SDK代碼中的錯誤。我不確定更新的時間。 – BryanWheelock

1

您可能想了解go run/test的工作原理。該計劃基本上建立在一個臨時位置,然後運行,所以這可能是爲什麼它抱怨你的goroot。

這個問題可能可能幫助你:Golang: tests and working directory

0

我相信你是錯誤的goapp。你應該叫一個是直接在google_appengine文件夾,如下所示:

/Users/bryan/google-cloud-sdk/platform/google_appengine/goapp test 

如果你沒有在google_appengine出於某種原因goapp,我會很驚訝,但隨後下應該工作了。 (不過上面是調用它的正確途徑。goapp解決AppEngine上的GOROOT從它自己的位置的相對路徑,所以在那裏goapp本身位於這一點很重要。)

GOROOT=/Users/bryan/google-cloud-sdk/platform/google_appengine/goroot /Users/bryan/google-cloud-sdk/platform/google_appengine/goapp test 
相關問題