为什么“去测试-v”看不到GOPATH或GOPATH而是“go env”呢?

时间:2017-06-09 21:14:08

标签: google-app-engine go

当我在本地运行它时,应用程序正常工作: $ dev_appserver.py app.yaml

但是,当我尝试运行测试时,似乎没有设置ENV。

$ go test -v

skincare.go:6:5: cannot find package "appengine" in any of:
    /usr/local/go/src/appengine (from $GOROOT)
    /Users/bryan/go/src/appengine (from $GOPATH)
skincare.go:7:5: cannot find package "appengine/datastore" in any of:
    /usr/local/go/src/appengine/datastore (from $GOROOT)
    /Users/bryan/go/src/appengine/datastore (from $GOPATH)
skincare.go:8:5: cannot find package "appengine/user" in any of:
    /usr/local/go/src/appengine/user (from $GOROOT)
    /Users/bryan/go/src/appengine/user (from $GOPATH)

$ go 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"

2 个答案:

答案 0 :(得分:3)

$GOPATH不应包含路径的src部分。因此,不应指向/Users/bryan/go/src/,而应指向 /Users/bryan/go

答案 1 :(得分:0)

我怀疑您的测试失败了,因为您直接使用go test调用它们而不是使用App Engine SDK的测试运行器goapp test,它会在运行时将您链接到appengine包。