用hombrew安装,可以找到导致包失败的$ GOROOT

时间:2018-02-01 22:02:07

标签: unit-testing go

我用自制软件安装了Go,它通常有效。按照此处有关创建serverless api in Go的教程。当我尝试运行单元测试时,出现以下错误:

# _/Users/pro/Documents/Code/Go/ServerLess
main_test.go:6:2: cannot find package "github.com/strechr/testify/assert" in any of:
        /usr/local/Cellar/go/1.9.2/libexec/src/github.com/strechr/testify/assert (from $GOROOT)
        /Users/pro/go/src/github.com/strechr/testify/assert (from $GOPATH)
FAIL    _/Users/pro/Documents/Code/Go/ServerLess [setup failed]
Pros-MBP:ServerLess Santi$ echo $GOROOT

我已经安装了测试库:go get github.com/stretchr/testify

如果有人能指出我正确的方向,我将不胜感激。

同样令人困惑的是,当我运行echo $GOPATH时,它不会返回任何内容。同样适用于echo $GOROOT

1 个答案:

答案 0 :(得分:1)

要尝试/验证的一些事情:

  • 正如JimB所说,从Go 1.8开始,GOPATH env var现在是可选的,并且具有默认值:https://rakyll.org/default-gopath/
  • 虽然您不需要设置它,但目录确实需要具有Go工作区结构:https://golang.org/doc/code.html#Workspaces
  • 创建后,创建源文件,例如:$ GOPATH / src / github.com / DataKid / sample / main.go
  • cd进入该目录,然后重新运行go get命令:
    • go get -u -v github.com/stretchr/testify
    • go get -u -v github.com/aws/aws-lambda-go/lambda
  • 然后再次尝试运行测试命令:go test -v

-v选项用于详细输出,-u选项可确保您下载最新的软件包版本(https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies)。