如何在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
相关产品推荐
相关产品推荐

