写了这么多年 Go 刚刚才知道以 _. 开头的文件/目录不会被 go test ./... 执行……

1
2
3
4
5
6
7
8
go help test
usage: go test [build/test flags] [packages] [build/test flags & test binary flags]

...

Files whose names begin with "_" (including "_test.go") or "." are ignored.

...

真是离了大谱。手动执行某个单测不通过的时候才发现,一度非常震惊🤯,每次 CI 是怎么跑成功的?原来如此!天杀的。

更离谱的是,我自己也不知道是哪里学来的规矩,明明自己也这样写1

355
356
357
358
359
360
361
362
363
364
// 所有人禁止访问特殊文件:以 . 或者 _ 开头的文件或目录。
// TODO:以及 config.yaml | README.md
switch file[0] {
case '.', '_':
	panic(status.Error(codes.PermissionDenied, `尝试访问不允许访问的文件。`))
}
switch path.Base(file)[0] {
case '.', '_':
	panic(status.Error(codes.PermissionDenied, `尝试访问不允许访问的文件。`))
}

我是草台班子。

碎碎念 桃子