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

如何在Go测试中关联Jira需求以实现XRay覆盖率统计?

解决方案:Go测试关联Jira XRay需求ID并计入覆盖率

基于你的现有技术栈(Go自动化测试 + XRay + gotestsum),以下是具体实现步骤:

1. 在Go测试中嵌入需求ID

选择一种易提取的方式在测试中标记需求ID:

  • 测试名称后缀:直接在测试函数名后拼接需求Key,比如TestUserLogin_PROJ-123,便于后续解析。
  • 测试注释:在测试函数上方添加固定格式的注释,比如:
    // Requirement: PROJ-123
    func TestUserLogin(t *testing.T) {
        // 测试逻辑
    }
    
  • 测试日志输出:在测试中打印固定格式的日志,比如t.Logf("XRay-Requirement: %s", "PROJ-123"),确保gotestsum能捕获到该日志。

2. 定制gotestsum生成带需求ID的JUnit XML

通过自定义JUnit模板,将提取到的需求ID写入XML的指定字段:

  1. 创建自定义模板文件(比如junit-custom.tmpl),在<testcase>节点中添加属性字段存储需求ID:
    <testcase name="{{ .Test.Name }}" classname="{{ .Package.Name }}" time="{{ .Test.Duration.Seconds }}">
        {{ if .Test.Output }}
        <system-out>{{ .Test.Output }}</system-out>
        {{ end }}
        <!-- 从测试名称中拆分需求ID(假设格式为TestName_PROJ-XXX) -->
        {{ $parts := split .Test.Name "_" }}
        {{ if ge (len $parts) 2 }}
        <properties>
            <property name="xray.requirement" value="{{ index $parts 1 }}" />
        </properties>
        {{ end }}
    </testcase>
    
  2. 运行gotestsum时指定该模板生成JUnit文件:
    gotestsum --junitfile results.xml --junit-template ./junit-custom.tmpl
    

3. 关联需求至XRay并计入覆盖率

有两种可行的实现方式:

方式一:直接通过XRay JUnit导入API自动关联

XRay支持识别JUnit XML中的自定义属性,只需在XRay的导入配置中设置:

  • 进入XRay的导入设置,指定xray.requirement属性对应Jira需求Key字段。
  • 调用现有XRay导入API上传results.xml,XRay会自动将测试用例关联到对应需求,并更新覆盖率统计。

方式二:手动构造XRay Payload(更灵活)

如果需要更精细的控制,可编写Go工具解析JUnit XML,提取测试结果和需求ID,构造XRay标准执行导入Payload:

  1. 解析JUnit XML,提取每个测试用例的名称、状态和需求ID。
  2. 构造符合XRay API规范的JSON Payload,示例如下:
    {
      "info": {
        "summary": "Go自动化测试执行结果",
        "description": "CI/CD流水线自动生成"
      },
      "tests": [
        {
          "testKey": "TEST-456", // 若已关联XRay测试用例Key则填写,否则可省略(自动创建测试用例)
          "status": "PASS",
          "requirements": ["PROJ-123"] // 此处填入提取到的需求ID
        }
      ]
    }
    
  3. 调用XRay的执行导入API上传该Payload,完成关联。

4. 验证结果

在Jira对应需求页面(如PROJ-123)查看需求覆盖率,确认关联的测试用例已计入统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:39:19