将JUnit XML测试结果导入Jira/Xray时遇「Error creating issues in Jira!」错误
我正尝试将JUnit XML测试结果集成到Jira/Xray测试运行中,已创建最简results.xml文件:
<?xml version="1.0" encoding="UTF-8" ?> <testsuite name="account_settings.spec.ts" timestamp="2025-01-21T05:39:49.602Z" hostname="chromium" tests="1" failures="0" skipped="0" time="9.129" errors="0"> <testcase name="Account settings ... Edit Account details of a admin user @account_detail" classname="account_settings.spec.ts" time="9.129"/> </testsuite>
根据Xray官方文档,我执行了如下两次POST调用:
尝试1:
curl -v -H "Content-Type: text/xml" -X POST -H "Authorization: Bearer $TOKEN" --data @"results.xml" https://xray.cloud.getxray.app/api/v2/import/execution/junit?projectKey=PRJ
尝试2:
curl -v -H "Content-Type: text/xml" -X POST -H "Authorization: Bearer $TOKEN" --data @"results.xml" https://xray.cloud.getxray.app/api/v2/import/execution/junit?testExecKey=PRJ-16&projectKey=PRJ
其中PRJ是已集成Xray的Jira项目,PRJ-16是包含一个测试用例的「Test Execution」工单。但调用后返回响应:
{
"error": "Error creating issues in Jira!"
}
请问哪里操作出错了?
可能的问题及解决方法
测试用例匹配失败
Xray导入JUnit结果时,会根据testcase的名称或@开头的标签(比如你用的@account_detail)匹配Jira中的测试用例。如果PRJ-16里的测试用例没有关联account_detail标签,或者名称不匹配,Xray会尝试自动创建新测试用例,但如果项目未配置允许自动创建,或令牌无创建权限,就会报错。
解决:检查PRJ-16内的测试用例是否添加了account_detail标签,或确保testcase的名称与Jira测试用例完全一致;若需自动创建测试用例,确认令牌拥有Create Issue权限。API令牌权限不足
你使用的Bearer令牌可能缺少必要权限:比如更新Test Execution、创建测试用例、编辑Jira工单的权限。
解决:登录Jira查看令牌对应用户的权限,确保拥有Xray Test Execution编辑权限、项目PRJ的操作权限,以及Create Issue权限。JUnit XML格式细节问题
部分Xray版本对testcase名称中的特殊字符(比如你用的...)处理存在异常,或者@account_detail的标签格式未被正确解析。
解决:简化testcase的名称(比如改为Account settings - Edit Account details of admin user),手动给Jira测试用例添加account_detail标签后重新导入。Test Execution工单状态异常
如果PRJ-16处于已关闭、已解决等不可编辑状态,Xray无法更新其测试结果,会触发创建错误。
解决:打开PRJ-16工单,确认其状态为可编辑(比如「进行中」或「待处理」)。
内容的提问来源于stack exchange,提问作者Asanke

