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

Go项目GitLab流水线go-junit-report解析测试结果失败

GitLab流水线JUnit XML解析失败:移除非ASCII字符的解决办法

问题根源

你遇到的JUnit XML parsing failed报错,基本就是因为生成的report.xml里包含非ASCII字符,GitLab的JUnit解析器无法处理这类字符导致的。

直接修改流水线脚本解决

在现有脚本里加一步过滤,把go test输出里的非ASCII字符删掉,再传给go-junit-report生成合规的XML报告。修改后的.gitlab-ci.yml如下:

test:
  stage: build
  artifacts:
    when: always
    expire_in: 30 day
    reports:
      junit: report.xml
  script:
    - go install github.com/jstemmer/go-junit-report/v2@v2.0.0
    - go test -cover -v ./internal/... -coverprofile=unit.coverprofile -tags=unit \
      | tr -cd '\11\12\15\40-\176' \
      | $GOPATH/bin/go-junit-report -iocopy -set-exit-code -out report.xml

命令解释

  • tr -cd '\11\12\15\40-\176':这个命令会保留所有可打印ASCII字符,以及制表符、换行符、回车符,删掉其他所有非ASCII字符,确保输出给go-junit-report的内容是纯ASCII的。
  • 把这步过滤插在go test和go-junit-report之间,就能保证最终生成的report.xml符合GitLab解析要求,测试结果就能正常显示在测试标签页了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:00:58