go test命令包含*_test。Go文件只在一个目录下。
我想测试整个项目,这意味着测试应该覆盖所有*_test。进入dir ./目录下的文件和dir ./目录下的每个子树目录。
做这件事的命令是什么?
go test命令包含*_test。Go文件只在一个目录下。
我想测试整个项目,这意味着测试应该覆盖所有*_test。进入dir ./目录下的文件和dir ./目录下的每个子树目录。
做这件事的命令是什么?
当前回答
从Go 1.9开始,使用
go test ./...
在Go 1.6到1.8中,./…还匹配了供应商目录。要跳过提供的包,您可以使用
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的评论。
其他回答
这将运行当前目录及其所有子目录下的所有测试:
$ 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中,./…还匹配了供应商目录。要跳过提供的包,您可以使用
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的评论。
文件夹结构
ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
go test command命令
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
整个项目的覆盖报告
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%