在 Go 项目中,go test
可以用于运行整个工程中的测试文件。以下是几种方式:
1. 运行当前模块或整个工程的测试
go test ./...
./...
表示递归测试所有子目录中的测试文件(*_test.go
)。- 适用于 Go Modules 或 GOPATH 结构的项目。
2. 运行指定包的测试
go test ./pkg/
- 仅运行
pkg/
目录下的测试。
3. 运行所有测试并显示详细日志
go test -v ./...
-v
选项启用详细模式,打印每个测试的执行结果。
4. 运行带有特定标签的测试
如果你使用了 t.Run
组织测试,可以只运行特定匹配的测试:
go test -run TestFuncName ./...
- 只执行名称匹配
TestFuncName
的测试。
5. 运行并生成覆盖率报告
go test -cover ./...
- 显示测试覆盖率信息。
如果需要导出覆盖率报告:
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out -o coverage.html
- 生成 HTML 形式的测试覆盖率报告。
这样,你可以更方便地跑整个工程的测试并获取测试信息!
在vscode中,可以使用testing插件。在配置中配置:
{
“go.inferGopath”: false,
“go.coverOnTestPackage”: true,
“go.coverOnSingleTest”: true,
“go.coverOnSingleTestFile”: true,
“go.testFlags”: [“-gcflags=all=-l”]
}