从根项目文件夹运行 go 测试

pez*_*pez 5 go

我必须从同事那里接手一个Go项目,我以前从未接触过Go,而且它没有测试,所以我开始添加它们,但我无法运行它们。

用于运行测试的 go 命令是go test,但它似乎没有在根级别运行。

我的项目结构是:

/project/main.go
/project/engine/*.go
/project/api/*.go
Run Code Online (Sandbox Code Playgroud)

如果我cd进入 或engineapi并运行go test它,它可以工作,但不能在根文件夹中。

cd /project
go test

 ?      /project    [no test files]
Run Code Online (Sandbox Code Playgroud)

有没有办法从根目录运行所有测试?

Elw*_*nar 6

您可以使用...(省略号) 运算符来测试当前包的所有子包。像那样:go test ./...

如果您执行更复杂的操作(例如使用该工具),稍后您可能还想尝试其他解决方案list。像这样(例如):go test $(go list ./... | grep [regex])。这对于vendor从测试中排除该目录很有用。

您可能想了解的另一件事是gt可以在此处找到的命令https://godoc.org/rsc.io/gt并向该命令添加缓存go test

最后,请毫不犹豫地阅读https://blog.golang.org/cover来获取有关 golang 代码覆盖率分析的信息。