当没有可用的源文件时,`cmd/go: go test ./...` 会给出重复的报告,

ergxz8rk  于 5个月前  发布在  Go
关注(0)|答案(5)|浏览(42)

你正在使用哪个版本的Go(go version)?

% go version
go version devel +964fe4b80f Thu Apr 4 00:26:24 2019 +0000 darwin/amd64

这个问题在最新版本中是否会重现?

你做了什么?

% mkdir ~/devel/test && cd ~/devel/test
% go mod init github.com/davecheney/test
% go test ./...

你想看到什么结果?

no packages to test

或者

"./..." matched no packages

或者
没有输出

你看到了什么?

% go test ./...
go: warning: "./..." matched no packages
no packages to test

注意重复的警告和错误信息。

wh6knrhe

wh6knrhe1#

/cc @bcmills@jayconrod

idfiyjo8

idfiyjo82#

通过我快速查看代码,我怀疑这是因为有一个搜索包的函数,当找不到任何东西时会发出警告,而不是返回错误。然而,测试模块本身如果找不到包也会返回错误。
也许“LoadPackages”函数需要返回一个错误,而不仅仅是长度为0的切片?
如果需要修复这个问题,我想尝试提出一个解决方案。稍后我可以更详细地查看并提出修复建议。

vlju58qv

vlju58qv3#

这并不是真正的重复,因为你可能指定了多个模式,在这种情况下,第一个消息会在每个未匹配到任何内容的模式中重复一次,而后者只有在没有任何模式匹配到任何测试的情况下才会发生。

% go test a/... b/...
go: warning: "a/..." matched no packages
go: warning: "b/..." matched no packages
no packages to test

如果有测试但也有错误的模式

% go test ./valid_test a/...
go: warning: "a/..." matched no packages
ok      valid_test    0.024s
t5fffqht

t5fffqht5#

https://go.dev/cl/505635提到了这个问题:cmd/go: modify go {test,vet} to scale down to 0 packages gracefully

相关问题