回答

收藏

子目录中的 Golang 测试

技术问答 技术问答 235 人阅读 | 0 人回复 | 2023-09-12

我想在 Go 创建一个包,包括包的测试和示例作为子目录,以保持工作区域清洁。如果可以的话,这是可能的。
6 J( B& I; A" \) e, b& R) W所有文档总是把测试代码和其他代码放在同一个地方,在某种程度上更好还是只是约定?! h8 s' i5 x5 T+ q
                                                                . `4 _* {2 o% r5 d! R; I+ p: z9 v
    解决方案:                                                               
- o5 z" o% y( @" c! H" C3 r' F; P                                                                注意,您可以go test递归操作:您需要列出所有要测试的包) Z, L6 t" P5 h# i+ y% g
如果您在 Go 请输入项目根文件夹:7 G  _$ m# [# l, A! ?
    go test ./...8 M3 D& c; k2 A; n, I( r
“命令”的“包列表./...描述部分描述了 符号:go
$ L& u5 {" [/ V; u如果导入路径包含一个或多个 ” ...” 通配符,则它是一种模式,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串。
2 H8 c& J7 c( v/ k' ^7 C扩展到这种模式GOPATH所有匹配树中名称和模式的包目录。+ b* v" w9 S% ?7 l8 B4 A8 m+ u
作为一种特殊情况,x/...匹配x以及x的子目录。8 L, Z2 ]! `- u: j+ K0 k, w
例如,net/...扩展到net子目录中的 和 包。
3 r  o. S! d" _% W如果您将_test.go 文件存储在子文件夹中go test ./... 命令将能够提取它们。
0 T% m' @& L# U5 ^) l7 A* k) s' m; K但:; O7 I6 B) n/ Q
您需要在导出的变量和函数(用于您的测试)之前添加包的名称,以便测试文件能够访问包导出的内容。
& q4 w. G4 U9 W( L4 N) s: V您不会访问非导出内容。
尽管如此,我仍然希望它会发生_test.go主源文件旁边的文件:更容易找到。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则