该go test命令*_test.go仅涵盖一个目录中的文件.
我想要go test整个项目,这意味着测试应该涵盖*_test.go目录中的所有文件./以及目录下的每个chindren树目录./.
执行此操作的命令是什么?
zzz*_*zzz 228
这应该在当前目录及其所有子目录中运行所有测试:
$ go test ./...
Run Code Online (Sandbox Code Playgroud)
这应该使用前缀为的导入路径运行所有测试foo/:
$ go test foo/...
Run Code Online (Sandbox Code Playgroud)
这应该运行所有测试导入路径前缀为foo:
$ go test foo...
Run Code Online (Sandbox Code Playgroud)
这应该在$ GOPATH中运行所有测试:
$ go test ...
Run Code Online (Sandbox Code Playgroud)
use*_*610 45
从Go 1.9开始,使用
go test ./...
Run Code Online (Sandbox Code Playgroud)
在Go 1.6到1.8中,./...匹配vendor目录.要跳过销售包装,你可以使用
go test $(go list ./... | grep -v /vendor/)
Run Code Online (Sandbox Code Playgroud)
来源: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
Run Code Online (Sandbox Code Playgroud)
去测试命令命令
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
Run Code Online (Sandbox Code Playgroud)
整个项目的覆盖率报告
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%
Run Code Online (Sandbox Code Playgroud)