大家,我对我所看到的感到困惑;我有以下内容tree
:
├── go.mod
├── main.go
└── server
├── server.go
└── server_integration_test.go
假设我的模块名称 ( mod.go
) 是gotest
. 内容server.go
:
package server
type MyStruct struct {
Hello string
}
func (m MyStruct) SayHello() string {
return m.Hello
}
内容server_integration_test.go
:
package server_integration_test
import (
"testing"
)
func TestIntegration(t *testing.T) {
t.Errorf("just gonna fail!")
}
最后是我的main
.go`:
package main
import (
"fmt"
"gotest/server"
)
func main() {
my := server.MyStruct{Hello: "my-struct"}
fmt.Println("from mystruct", my.SayHello())
}
当我运行go build
(或go test ./...
)时,我收到以下错误:
main.go:5:2: found packages server (server.go) and server_integration (server_integration_test.go) in /tmp/gotest/server
但是,如果我将我的更改server_integration_test.go
为:
package server_test
// ...
一切正常。
有人可以解释一下这里发生了什么吗?