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

标签 go

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

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

我的项目结构是:

/project/main.go
/project/engine/*.go
/project/api/*.go

如果我 cd 进入 engineapi,然后运行 ​​go test 它可以工作但不在根文件夹。

cd /project
go test

 ?      /project    [no test files]

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

最佳答案

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

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

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

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

关于go - 从根项目文件夹运行 go 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36719661/

相关文章:

http - 带有非本地主机的实时站点的 Go Revel 框架

postgresql - 为什么我的数据库列的值总是0?

go - 在定义打算在 golang 中保持不变的结构的受限值时,如何减少冗长?

go - 补丁命令的 exec.command

go - 如何在 Go 中从 netcat 打印 TCP 消息?

go - 分析 golang runtime.systemstack

go - 多语句优于分解导入语句的情况?

GORM FirstOrCreate 从不更新 bool 字段

xml - Golang : Parse both XML element value and attributes for groups

go - 读取以并发 goroutine 编写的 channel 时缺少最后一个值