"go test" 命令只覆盖一个目录中的 "*_test.go" 文件。
我想对整个项目进行 "go test",这意味着测试应覆盖位于 "./" 目录及其子目录下的所有 "*_test.go" 文件。
如何使用命令实现此操作?
$ go test ./...
$ go test ./tests/... ./unit-tests/... ./my-packages/...
这将运行以导入路径前缀为 foo/
的所有测试:
$ go test foo/...
这应该运行所有以 foo
为前缀的路径的测试:
$ go test foo...
这将运行您$GOPATH中的所有测试:
$ go test ...
从Go 1.9开始,请使用
go test ./...
在Go语言1.6到1.8版本中,./...
也会匹配vendor
目录。如果要跳过已经供应的软件包,则可以使用:
go test $(go list ./... | grep -v /vendor/)
来源: https://github.com/golang/go/issues/11659, https://github.com/golang/go/issues/14417, https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2366, @nickgrim 的评论。
./vendor/
目录,因此您可以使用 go test ./...
运行所有测试,而不运行任何供应商测试。 - nickgrim文件夹结构
ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
go test命令
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
整个项目的覆盖率报告
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%
...
必须被转义,即go test \...
。"FYI"表示提供信息而无需回复。 - Gabe Kopley