【发布时间】:2019-03-01 10:21:04
【问题描述】:
我用go test ./... -v -short 测试我的代码。
不幸的是,-v 只会在每个测试发生时打印出来,但不会像在 Java 中那样在底部留下结果摘要。这意味着如果任何测试在顶部某处失败,我必须向上滚动并查找单词 FAIL 或在文本编辑器中搜索。
-failfast 标志也无济于事,因为由于某种原因,在第一次测试失败后,我的一些测试仍然会被打印出来。
我并不关心在初始测试失败后是否运行测试。我只想能够轻松判断 任何 测试是否失败,最好只在一个地方(例如,多少测试通过或失败的摘要,或通过查看标志如果所有测试都通过了)。
有没有一种方法可以轻松判断是否有测试失败,因为如果我仍然有测试失败,我不想意外地继续编码。
我使用的是 64 位 Windows 10。
更新:非常感谢@icza 提供findstr 提示。后来我意识到我也想看到错误描述以及测试失败,但不想运行go test 两次。这是我为 CMD 提出的(不适用于 Powershell):
go test ./... -v -short > test-results.txt & findstr "FAIL _test" test-results.txt
现在findstr 应该报告测试失败以及错误描述。如果您想查看完整的测试结果,只需打开test-results.txt。
【问题讨论】:
-
go test ./... |grep FAIL- 这对你有用吗? -
@icza 不,
grep给了我错误:grep : The term 'grep' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. -
@icza 我刚刚意识到可能需要在 Windows 上安装 grep。让我看看我能不能让它工作......
-
grep是一个 unix 命令。如果您没有,请告诉我们您使用的是什么操作系统。 -
在 Windows 上,您可以像这样使用
findstr:go test ./... |findstr FAIL
标签: unit-testing go testing