всех, меня смущает то, что я вижу; У меня есть следующее 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
// ...
Все работает.
Может кто-нибудь объяснить, что здесь происходит?