go test
命令仅涵盖一个目录中的*_test.go
个文件。
我想go test
整个项目,这意味着测试应该涵盖目录*_test.go
中的所有./
文件以及目录./
下的每个chindren树目录。
执行此操作的命令是什么?
答案 0 :(得分:200)
这应该在当前目录及其所有子目录中运行所有测试:
$ go test ./...
这应该使用前缀为foo/
的导入路径运行所有测试:
$ go test foo/...
这应该运行前缀为foo
的所有测试导入路径:
$ go test foo...
这应该在$ GOPATH中运行所有测试:
$ go test ...
答案 1 :(得分:44)
declare module ExtLib {
interface ISMTH {
prop1: string;
prop2: number;
}
}
在Go 1.6到1.8中,go test ./...
也匹配vendor
directory。要跳过已售出的包裹,您可以使用
./...
来源: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的评论。
答案 2 :(得分:5)
文件夹结构
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%