Go get all dependencies返回Terratest无法识别的导入路径

Go get all dependencies返回Terratest无法识别的导入路径,go,terratest,Go,Terratest,配置 go1.15.2达尔文/amd64 macOS Catalina v10.15.7 .zshrc文件 export GOPATH=$HOME/go 导出GOROOT=/usr/local/opt/go/libexec 导出路径=$PATH:$GOPATH/bin 导出路径=$PATH:$GOROOT/bin 我想做的事 我是新手,正在尝试使用Terratest为打包机构建编写测试 当尝试运行go test my_test.go时,我不断收到错误,说我需要安装丢失的软件包 ../../

配置

  • go1.15.2达尔文/amd64
  • macOS Catalina v10.15.7
.zshrc
文件

export GOPATH=$HOME/go
导出GOROOT=/usr/local/opt/go/libexec
导出路径=$PATH:$GOPATH/bin
导出路径=$PATH:$GOROOT/bin
我想做的事

我是新手,正在尝试使用Terratest为打包机构建编写测试

当尝试运行
go test my_test.go
时,我不断收到错误,说我需要安装丢失的软件包

../../../../go/src/github.com/gruntwork io/terratest/modules/aws/sqs.go:10:2:在以下任何一个中找不到包“github.com/google/uuid”:
/usr/local/opt/go/libexec/src/github.com/google/uuid(来自$GOROOT) /Users/username/go/src/github.com/google/uuid(来自$GOPATH)。
命令行参数失败[安装失败]
失败

通过谷歌搜索,我发现从测试文件所在的目录运行
go-get-u./…
应该可以安装这些软件包

问题

当我运行
go get-u./…
时,我得到以下错误:

软件包uu/Users/username/github.com/my-org/my-repo/packer/tests:无法识别的导入路径“uu/Users/username/github.com/my-org/my-repo/packer/tests”:导入路径不以主机名开头

对于其他上下文,这是我正在使用的目录结构:

~ 
    github.com/my-org/my-repo/
        packer/
            tests/
                my_test.go
这是我创建的测试文件,用作参考:

包测试
进口(
“测试”
“github.com/gruntwork io/terratest/modules/packer”
“github.com/stretchr/authentic/assert”
terratest_aws“github.com/gruntwork io/terratest/modules/aws”
)
func TestMyAmiBuild(t*testing.t){
awsRegion:=“us-east-1”
封隔器选项:=&packer.Options{
//测试中封隔器模板的路径
模板:“../Template/Template.json”,
//传递给封隔器构建的变量
变量:映射[字符串]字符串{
“ami_name”:“我的ami”
},
//仅构建AWS AMI
仅限:“亚马逊ebs”,
}
//构建封隔器模板
amiID:=packer.BuildArtifact(t,packerOptions)
//完成后,清理AMI
延迟terratest_aws.删除AMI和所有快照(t、aws区域、AMID)
//检查AMI是否是私有的
AMISPublic:=terratest_aws.GetAmiPubliclyAccessible(t、awsRegion、AMID)
assert.False(t,amiIsPublic)
}

您好,您选择了好的工具,您几乎做到了:-)主要问题是您使用的是旧的方式,在模块之前。1.取消导出所有环境变量,它们只是在添加混乱和错误;2.不需要再把代码放在GOPATH下,把它放在你想要的地方;3阅读并使用go mod init。对于围棋模块的介绍,请参阅Hello的“快速入门”,您选择了好的工具,您几乎做到了:-)主要问题是您使用的是围棋的旧方式,在模块之前。1.取消导出所有环境变量,它们只是在添加混乱和错误;2.不需要再把代码放在GOPATH下,把它放在你想要的地方;3阅读并使用go mod init。有关go模块介绍,请参阅的“快速入门”