我在测试我的GAE golang应用程序是否使用本地程序包时遇到问题。
probject看起来像这样。
.
├── app.yaml
├── main.go
└── handler
└── handler.go
handler
包以main.go
导入。package main
import "handler"
在开始编写测试之前,一切(例如
goapp serve
)都可以正常工作。goapp test
抱怨找不到handler
包。好像GOPATH
goapp serve
和goapp test
的不同。我发现的一种解决方案是handler
包位于项目路径之外,并完全导入限定名称(例如
github.com/.../handler
),但对我来说没有意义将项目拆分到彼此紧密耦合的单独位置。是
有没有使用和测试本地软件包的好方法?
在此主题上找到以下资源。
最佳答案
这来晚了,但是如果有人遇到相同的问题,请按以下步骤处理:
/whereever
└── /myproject
└──/src
├── app.yaml
├── main.go
└── /handler
└── handler.go
import handler
goapp serve
和goapp deploy
。相对于app.yaml的服务/部署工作cd /whereever/myproject/src
goapp serve
goapp test
设置GOPATH,它基于GOPATH进行工作cd /whereever/myproject #GOPATH expects a subfolder called src
GOPATH=$GOPATH:`pwd` #add the current folder to the GOPATH
goapp test ./... #run all tests in any subfolders
source ~/.profile #this assumes ~/.profile is where you have permanently set your GOPATH
总而言之,“按预期工作”,但仍然很痛苦。