You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助Go标准工具将go test的report.json转为人类可读格式?

Go测试JSON报告转可读格式的解决办法

Go标准工具链里没有专门用来把go test生成的JSON报告转回人类可读文本的工具,但有两个简单方案能搞定:

  • 用jq解析过滤:虽然jq不是Go自带,但它是很常用的JSON处理工具,执行下面的命令就能直接揪出所有失败的测试用例信息:

    jq '. | select(.Action == "fail")' report.json
    

    输出结果会包含失败测试的包名、用例名称和具体错误原因,足够快速定位问题。

  • 写几行极简Go脚本:如果不想依赖第三方工具,用Go标准库写个小脚本就行,比如新建parse_test.go文件:

    package main
    
    import (
        "encoding/json"
        "fmt"
        "os"
    )
    
    type TestEvent struct {
        Action  string
        Package string
        Test    string
        Output  string
    }
    
    func main() {
        dec := json.NewDecoder(os.Stdin)
        for {
            var e TestEvent
            if err := dec.Decode(&e); err != nil {
                break
            }
            if e.Action == "fail" {
                fmt.Printf("包名: %s\n测试用例: %s\n错误信息:\n%s\n---\n", e.Package, e.Test, e.Output)
            }
        }
    }
    

    然后运行:

    go run parse_test.go < report.json
    

    这个脚本只会输出失败测试的关键信息,完全基于Go标准库,不需要额外装东西。

另外,其实可以从源头避免事后处理——测试时同时生成JSON报告和可读输出:

go test -coverprofile cover.out ./... -json | tee report.json | go tool test2json -t

这样既存好了SonarQube需要的JSON文件,又能实时看到正常的测试输出,失败时当场就能定位问题。

内容的提问来源于stack exchange,提问作者TieDad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 16:01:20