# 包内测试
$go list -f={{.TestGoFiles}} .
# 包外测试
$go list -f={{.XTestGoFiles}} .
# go 1.16.4
#统计标准库中采用包内测试的测试文件数量
$ find . -name "*_test.go" |xargs grep package |grep ':package'|grep -v "_test$"|wc -l
718
#*统计标准库中采用包外测试的测试文件数量*
*$find . -name "*_test.go" |xargs grep package |grep ':package'|grep "_test$" |wc -l
472*
export_test.go
($GOROOT/src/fmt/export_test.go)
该文件中的代码位于被测包名下,但它既不会被包含在正式产品代码中(因为位于_test.go文件中),又不包含任何测试代码,而仅用于将被测包的内部符号在测试阶段暴露给包外测试代码
包内测试和包外测试选择