go test测试的注意事项
今天,我在使用 go 语言编写 holiya 编程语言项目的时候,在 token 包编写完成 token 相关的内容之后,编写了测试 token_test.go 文件,我执行以下命令进行测试:
shell
go test但是报错了:
txt
no Go files in path/to/holiya这是因为 go test 默认会测试当前目录下的所有 go 文件,但是,holiya 项目的根目录下面没有任何 go 文件,测试文件在token目录里面,所以,go test 找不到任何 go 文件,就会报错。
我问了 AI ,AI 说是要执行以下命令:
shell
go test ./...最开始的时候,我以为 go test ./... 后面的 ...是多余的,就直接执行了以下命令:
shell
go test ./结果报错了:
txt
no Go files in path/to/holiya后来才发现是要执行以下完整的命令:
shell
go test ./...这样就会测试所有包里面的测试。 如果只想测试固定的包,比如token包,可以使用以下命令:
shell
go test ./token如果想知道测试了哪些函数,可以加上参数 -v
shell
go test -v ./...
go test -v ./token测试输出:
txt
=== RUN TestTokenType
--- PASS: TestTokenType (0.00s)
=== RUN TestTokenLiteral
--- PASS: TestTokenLiteral (0.00s)
=== RUN TestLookupIdentifier
--- PASS: TestLookupIdentifier (0.00s)
PASS
ok holiya/token (cached)