2017-06-16 75 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 
相关问题