回答

收藏

子目录中的 Golang 测试

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

我想在 Go 创建一个包,包括包的测试和示例作为子目录,以保持工作区域清洁。如果可以的话,这是可能的。
, b% C, b/ c+ h6 v0 A' _  X4 F5 B所有文档总是把测试代码和其他代码放在同一个地方,在某种程度上更好还是只是约定?1 `8 u* j0 N' n8 y# a4 j
                                                               
8 T2 z) F, L" L- @" w$ w2 n8 v    解决方案:                                                                6 E, x  f: i2 c! ^7 q7 X, |
                                                                注意,您可以go test递归操作:您需要列出所有要测试的包
. m2 D  }$ ]  q, Q+ C) d/ H* c如果您在 Go 请输入项目根文件夹:, T* F6 b+ Q3 m9 d1 k1 r0 B
    go test ./...7 Q/ A; |. H9 q. E" g( H
“命令”的“包列表./...描述部分描述了 符号:go
5 ~" \3 l8 W2 F" \+ D' A4 x( F3 \如果导入路径包含一个或多个 ” ...” 通配符,则它是一种模式,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串。, M& T: {, ~# R/ A' i
扩展到这种模式GOPATH所有匹配树中名称和模式的包目录。+ k2 _9 O( o1 T/ ]  w& U
作为一种特殊情况,x/...匹配x以及x的子目录。* i% S. _% }) L6 i8 J
例如,net/...扩展到net子目录中的 和 包。8 l( N0 {3 _9 a: K9 Z9 S
如果您将_test.go 文件存储在子文件夹中go test ./... 命令将能够提取它们。" H  c1 p1 m8 x9 |+ D7 ~( h& X
但:
1 B/ ], u$ W+ A: e3 O1 v* @您需要在导出的变量和函数(用于您的测试)之前添加包的名称,以便测试文件能够访问包导出的内容。
- z0 D' y- {# A0 q0 X您不会访问非导出内容。
尽管如此,我仍然希望它会发生_test.go主源文件旁边的文件:更容易找到。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则