我在 pkg 目录中运行go test,并且在运行时将测试结果打印到控制台,但如果我可以将它们打印到 txt 文件甚至 html 文件,那就更理想了,是否可以这样做?我知道你可以从中获取覆盖率报告,并为那些优秀的生成 html 文件,但我认为可以对测试的实际结果(即哪些测试运行、哪些测试通过、哪些测试失败)做同样的事情。我一直在网上搜索,但甚至go test help没有提供任何将结果打印到文件的建议。
2018:Go 1.10+
正如Yoshiki Shibukawa的回答所述,你有cmd/test2json
go tool test2json [-p pkg] [-t] [./pkg.test -test.v=test2json]
Run Code Online (Sandbox Code Playgroud)
其他方法go tool test2json:
KacperPerschke/json2test:恢复 go tool 的结果test2json。TaylorOno/golandreporterGinkgo 不会以可转换为 JSON 的格式输出结果(via go tool test2json,Goland 使用该格式来获取输出列表。本记者将欺骗test2json输出类似于 go 测试输出的 Ginkgo 规格。2015:因为我只想看到失败的测试,所以我运行这个脚本“ gt”而不是 go test:
go test -coverprofile=coverage.out %*|grep -v -e "^\.\.*$"|grep -v "^$"|grep -v "thus far"
Run Code Online (Sandbox Code Playgroud)
这样,它就会过滤除失败案例之外的所有内容。
您可以将其内容重定向到文件,如上所述:gt > test.out
它还生成代码覆盖率,这就是为什么我有另一个脚本“ gc”:
grep -v -e " 1$" coverage.out
Run Code Online (Sandbox Code Playgroud)
这样,我什至不等待浏览器打开,我直接看到尚未覆盖的行列表(即文件 1中不以“ ”结尾的行coverage.out)