如何在Go测试中抑制“[no test files]”消息

15
我正在项目的根目录下运行go test ./...,但是有几个包没有任何测试,并报告[no test files]。如果我运行go test ./... | grep -v 'no test files',则在测试失败时,我将失去从go test返回的代码。
我可以在递归测试项目根目录下的所有内容时忽略没有测试的软件包吗?

“[没有测试文件]”有什么问题?我认为没有任何方法可以抑制这些消息。 - fuz
1
没有问题,实际上这是一个有用的信息,但我有很多没有测试的包,它会使输出有点混乱。 - Vitor De Mario
@VitorDeMario 看起来 Golang 希望你因为没有 _test.go 文件而受苦 :D - Vojtech Vitek - golang.cz
嗯,自从我提出这个问题以来,已经过去了将近一年。就像大多数golang相关的事情一样,我现在接受它了。[no test files]非常有用,我现在不再压制它了。 - Vitor De Mario
我想要摆脱它们。可以通过测试输出来寻找实际的测试,但可能会很痛苦。应该是一个命令行选项。 - NullPumpkinException
2个回答

2
像这样的内容吗?
mkfifo /tmp/fifo-$$

grep -v 'no test files' </tmp/fifo-$$ & go test ./... >/tmp/fifo-$$
RES=$?
rm /tmp/fifo-$$
exit $RES

看起来不错。在 exit $RES 上缺少一个美元符号,尝试编辑但无法添加仅一个字符。 - Vitor De Mario
@VitorDeMario 抱歉,出了点问题。 - fuz

2
一个相对简洁的解决方案可能是这样的:

最初的回答

set -o pipefail
go test ./... | { grep -v 'no test files'; true; }
# reset pipefail with set +o pipefail if you want to swith it off again

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接