如何在Go项目中运行所有测试(go test)且不遗漏任何一个?
大家好!我刚开始学习Go,正在尝试理解测试。我有一个小项目,结构如下:
```
myproject/
├── main.go
├── go.mod
├── pkg/
│ ├── calc/
│ │ ├── calc.go
│ │ └── calc_test.go
│ └── utils/
│ ├── strings.go
│ └── strings_test.go
└── tests/
└── integration_test.go
```
当我在项目根目录运行 `go test` 时,它只运行当前文件夹(main.go所在目录)的测试,而忽略 `pkg/` 和 `tests/` 子文件夹中的测试。我尝试过 `go test ./...`,但会报错,说找不到某些文件,尤其是 `tests/` 中的文件。我哪里做错了?如何用一个命令正确运行项目中的所有测试?是否需要特别配置 `go.mod` 或文件夹结构?希望能得到详细的回答和示例,因为文档中描述了很多flags,但我很困惑。
<<>>
主要命令及其细节
要运行所有测试,请使用 `go test ./...`。如果遇到错误,请确保 `tests/` 文件夹中的文件属于同一个package,并且 `go.mod` 正确配置了module路径。如果 `tests/` 中的测试文件使用了不同的package名,请调整package声明或使用 `-tags` 等flags。另外,检查是否有未导入的依赖或语法错误。