回答

收藏

子目录中的 Golang 测试

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

我想在 Go 创建一个包,包括包的测试和示例作为子目录,以保持工作区域清洁。如果可以的话,这是可能的。
; b: g$ s& d& G+ x所有文档总是把测试代码和其他代码放在同一个地方,在某种程度上更好还是只是约定?* D) f& r6 n9 J6 v
                                                                1 |: r8 b" V  H: x& T
    解决方案:                                                               
  V2 u/ M% u5 l# Y6 y3 w                                                                注意,您可以go test递归操作:您需要列出所有要测试的包
! h' z* j, f, w* P如果您在 Go 请输入项目根文件夹:& @2 D% \0 v. F- a  v' ~
    go test ./...
    ) p# t: U) a! m4 G7 F" Z/ ?
“命令”的“包列表./...描述部分描述了 符号:go3 F+ A5 Z; J) A) G4 }. N4 \
如果导入路径包含一个或多个 ” ...” 通配符,则它是一种模式,每个通配符都可以匹配任何字符串,包括空字符串和包含斜杠的字符串。
# ]1 n* u/ P  F; P扩展到这种模式GOPATH所有匹配树中名称和模式的包目录。3 {; c; t6 s4 p) C" a
作为一种特殊情况,x/...匹配x以及x的子目录。
- g5 A  s8 d& \例如,net/...扩展到net子目录中的 和 包。% o" z1 ?- W' Y5 W2 j6 k
如果您将_test.go 文件存储在子文件夹中go test ./... 命令将能够提取它们。
# W2 y7 L5 o  W但:! E* t& J3 @+ s2 ~' o" N; ~
您需要在导出的变量和函数(用于您的测试)之前添加包的名称,以便测试文件能够访问包导出的内容。* ~4 n" C, Y* ?0 b# \
您不会访问非导出内容。
尽管如此,我仍然希望它会发生_test.go主源文件旁边的文件:更容易找到。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

23 积分
3 主题