如何正确组织和运行Go中嵌套子目录包的测试?
大家好!我正在学习Go,在编写具有子目录结构的项目的测试时遇到了问题。我的项目结构如下:
```
myapp/
├── main.go
├── handlers/
│ ├── user.go
│ └── user_test.go
├── models/
│ ├── user.go
│ └── user_test.go
└── utils/
└── helpers.go
```
在 `handlers/user_test.go` 文件中,我尝试导入 `utils/helpers.go` 中的函数,但当从项目根目录运行 `go test ./...` 时,测试失败并出现类似 "undefined: SomeFunction" 或 "package myapp/utils is not in GOROOT" 的错误。
如果我从 `handlers/` 文件夹内部运行 `go test`,测试可以工作,但前提是测试中没有导入其他包。我读过Go会自动查找测试,但无法理解如何正确地将子目录中的测试与项目的其他部分关联起来。
请告诉我如何正确组织子目录中的测试?是否需要特殊配置 go.mod 或 import 路径?以及如何一次性运行所有测试?