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

如何在JUnit XML中添加迭代结果,实现多迭代状态导入Jira Xray

问题描述

我目前使用Jenkins流水线结合XrayImportBuilder插件,上传带有数据集(DataSet)参数的Xray测试用例迭代状态。现在可以在将JUnit XML文件上传至Jira Xray前对其进行修改,想了解如何在XML中添加迭代结果,让Xray能够识别。

解决方案

要让Xray识别JUnit XML中的迭代信息,需在XML中添加Xray兼容的自定义属性,以下是两种可靠实现方式:

方式1:为单个测试用例指定迭代

在目标<testcase>节点下新增<properties>子节点,通过属性指定迭代信息。你可以直接用通用标识jira.iteration,或使用Jira迭代字段的自定义ID(更精准):

<testcase name="参数化测试用例_数据集行1" classname="com.example.TestClass" time="0.05">
  <properties>
    <!-- 方式A:直接指定迭代名称 -->
    <property name="jira.iteration" value="V1.0 迭代1"/>
    <!-- 方式B:使用Jira迭代字段的自定义ID(替换为你实际的字段ID) -->
    <property name="customfield_12345" value="V1.0 迭代1"/>
  </properties>
  <!-- 原有测试结果节点(如failure/skipped等) -->
</testcase>

方式2:为整个测试集全局指定迭代

若所有测试用例属于同一迭代,可在<testsuite>节点下添加全局属性,一次性为所有用例设置迭代:

<testsuite name="参数化测试集" tests="3" failures="0" errors="0" skipped="0" timestamp="2024-05-20T14:30:00" hostname="jenkins-node">
  <properties>
    <property name="jira.iteration" value="V1.0 迭代1"/>
  </properties>
  <!-- 所有测试用例节点 -->
  <testcase name="参数化测试用例_数据集行1" classname="com.example.TestClass" time="0.05"/>
  <testcase name="参数化测试用例_数据集行2" classname="com.example.TestClass" time="0.04"/>
</testsuite>

关键注意事项

  • 确认迭代字段ID:在Jira后台「设置→问题→自定义字段」中找到迭代字段,查看其ID(格式如customfield_xxxxxx),用该ID作为属性名可避免名称冲突,识别更稳定。
  • 参数化用例适配:如果是数据集驱动的参数化测试,每个<testcase>对应数据集的一行,可按需为单个用例设置迭代,或用全局属性统一配置。
  • 验证XML格式:修改后确保XML结构合法,避免语法错误导致Xray无法解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:58:42