使用 testcontainer-go 时遇到问题
Go get problem when using testcontainer-go
我正在试用页面示例 https://github.com/testcontainers/testcontainer-go
package main
import (
"context"
"fmt"
"net/http"
"testing"
testcontainer "github.com/testcontainers/testcontainer-go"
)
func TestNginxLatestReturn(t *testing.T) {
ctx := context.Background()
req := testcontainer.ContainerRequest{
Image: "nginx",
ExposedPorts: []string{"80/tcp"},
}
...
}
但是当我将代码放在 <home>/go/src/my-sample
下的文件 main.go
中并调用 go get
时,我只得到这个错误:
#
github.com/testcontainers/testcontainer-go
../github.com/testcontainers/testcontainer-go/docker.go:116:32: cannot use inspect.NetworkSettings.NetworkSettingsBase.Ports (type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/go-connections/nat".PortMap in return argument
../github.com/testcontainers/testcontainer-go/docker.go:197:25: multiple-value uuid.NewV4() in single-value context
../github.com/testcontainers/testcontainer-go/docker.go:219:3: cannot use exposedPortSet (type map["github.com/docker/go-connections/nat".Port]struct {}) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value
../github.com/testcontainers/testcontainer-go/docker.go:261:3: cannot use exposedPortMap (type map["github.com/docker/go-connections/nat".Port][]"github.com/docker/go-connections/nat".PortBinding) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value
我做错了什么?
我也重现了这个问题,但我确实通过以下步骤构建并 运行 了测试:
- 在
$GOPATH
树之外创建一个 my_package
目录。
创建一个包含以下内容的 mypackage_test.go
文件:
package main
import (
"testing"
testcontainer "github.com/testcontainers/testcontainer-go"
)
func testNginxLatestReturn(t *testing.T) {
req := testcontainer.ContainerRequest{
Image: "nginx",
ExposedPorts: []string{"80/tcp"},
}
t.Log(req)
}
go mod init mypackage
go test
我正在试用页面示例 https://github.com/testcontainers/testcontainer-go
package main
import (
"context"
"fmt"
"net/http"
"testing"
testcontainer "github.com/testcontainers/testcontainer-go"
)
func TestNginxLatestReturn(t *testing.T) {
ctx := context.Background()
req := testcontainer.ContainerRequest{
Image: "nginx",
ExposedPorts: []string{"80/tcp"},
}
...
}
但是当我将代码放在 <home>/go/src/my-sample
下的文件 main.go
中并调用 go get
时,我只得到这个错误:
#
github.com/testcontainers/testcontainer-go
../github.com/testcontainers/testcontainer-go/docker.go:116:32: cannot use inspect.NetworkSettings.NetworkSettingsBase.Ports (type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/go-connections/nat".PortMap in return argument
../github.com/testcontainers/testcontainer-go/docker.go:197:25: multiple-value uuid.NewV4() in single-value context
../github.com/testcontainers/testcontainer-go/docker.go:219:3: cannot use exposedPortSet (type map["github.com/docker/go-connections/nat".Port]struct {}) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value
../github.com/testcontainers/testcontainer-go/docker.go:261:3: cannot use exposedPortMap (type map["github.com/docker/go-connections/nat".Port][]"github.com/docker/go-connections/nat".PortBinding) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value
我做错了什么?
我也重现了这个问题,但我确实通过以下步骤构建并 运行 了测试:
- 在
$GOPATH
树之外创建一个my_package
目录。 创建一个包含以下内容的
mypackage_test.go
文件:package main import ( "testing" testcontainer "github.com/testcontainers/testcontainer-go" ) func testNginxLatestReturn(t *testing.T) { req := testcontainer.ContainerRequest{ Image: "nginx", ExposedPorts: []string{"80/tcp"}, } t.Log(req) }
go mod init mypackage
go test