我想在 Go 中创建一个包,其中包含包的测试和示例作为子目录,以保持工作区清洁。这是可能的,如果可以,如何?
所有的文档总是把测试代码和其他代码放在同一个地方,这在某种程度上更好还是只是约定?
注意,您可以go test“递归”运行:您需要列出所有要测试的包。
go test
如果您在 Go 项目的根文件夹中,请键入:
go test ./...
“命令”的“包列表./...描述”部分描述了“ ”符号:go
./...
go
如果导入路径包含一个或多个 ” ...” 通配符,则它是一种模式,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串。 这种模式扩展到在GOPATH树中找到的名称与模式匹配的所有包目录。 作为一种特殊情况,x/...匹配x以及x的子目录。 例如,net/...扩展到net其子目录中的 和 包。
如果导入路径包含一个或多个 ” ...” 通配符,则它是一种模式,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串。
...
这种模式扩展到在GOPATH树中找到的名称与模式匹配的所有包目录。
GOPATH
作为一种特殊情况,x/...匹配x以及x的子目录。 例如,net/...扩展到net其子目录中的 和 包。
x/...
x
net/...
net
如果您将_test.go文件保存在子文件夹中,“ go test ./...” 命令将能够提取它们。 但:
_test.go
话虽如此,我仍然希望将_test.go文件放在主源文件旁边:这样更容易找到。