测试依赖性不是由`go get`检索的

时间:2018-02-19 08:53:23

标签: go gitlab

我正在使用Golang(目前为1.9),并使用Gi​​tLab CI来测试和构建二进制文件和Docker容器。

对于某些项目,我遇到了这个问题(GitLab CI输出):

$ go get
$ go get -u github.com/golang/lint/golint
$ go tool vet -composites=false -shadow=true *.go
$ golint ./...
$ go test --race $(go list ./... | grep -v /vendor/)
# gitlab.my.site/core/proj/mypkg mypkg/mypkg_test.go:18:2: cannot find package 
"gitlab.my.site/core/otherproj/otherpkg" in any of:
/usr/local/go/src/gitlab.my.site/core/otherproj/otherpkg (from $GOROOT)
    /go/src/gitlab.my.site/core/otherproj/otherpkg (from $GOPATH)
FAIL    gitlab.my.site/core/proj/mypkg [setup failed]

core/otherproj项目是私有的,但可以通过SSH克隆,这是我目前的解决方法。

我的主要问题是依赖项中的私有项目最常使用,但有时go get它们始终失败。

值得注意的是otherproj/otherpkg只是proj/mypkg测试中的依赖项;不是它的主要功能。

我的问题是;为什么这个特定的依赖关系不能从go get下载,我该如何下载?

感谢。

1 个答案:

答案 0 :(得分:5)

来自docs(也可通过go get --help获得):

  

-t标志指示get还下载构建指定包测试所需的包。

因此,您需要运行go get -t来下载测试依赖项。