这就是我们想做的事情
通过REST API创建一个测试类型为Automated [Generic]的新测试,并确保按要求填充了测试定义字段(classpath +'。'+ class name)。假设此测试的测试密钥为MYPROJ-999。
我们运行自动测试,并为在#1中创建的同一测试生成Junit xml report.xml。
我们使用REST API发布结果。
curl -H“内容类型:多部分/表单数据” -u用户:pwd -F“ file=@report.xml” https://jira.my.com/rest/raven/1.0/import/execution/junit?projectKey=MYPROJ
预期结果:
MYPROJ-999的结果应通过PASS / FAILED更新,并应创建一个新的测试执行问题。不应创建新的测试。
实际结果:
API正在创建一个新测试,而不是更新现有测试MYPROJ-99。
有趣的观察是,如果我们使用Jira UI而不是REST API创建测试,那么它可以正常工作。没有创建重复的测试。
据我们所知,通过UI创建的测试和通过REST API创建的测试看起来完全一样。因此,我们无法理解为什么通过API创建的测试会有不同的表现。
答案 0 :(得分:0)
经过大量调试,我找到了根本原因,它很琐碎,但造成了很大的问题。不确定这是否是错误?
无论如何,这是东西。
当我们使用Jira应用程序UI创建类型为Automated [Generic]的测试或通过导入结果API创建测试时,测试定义字段将保存classpath +'。'+ classname值,但在文本的开头。
但是当我通过create issue api端点创建测试并填充定义字段时,我没有在classpath +'。'+ classname值的开头提供空格,因为我什至都不知道Jira / Xray在开头添加一个空格。
因此,我通过在json有效负载中的测试定义字段中留出一个空格并创建测试来进行测试,然后尝试为同一测试导入结果,我发现未创建重复测试。
答案 1 :(得分:0)
“通用定义”字段开头的空间,该空间包含唯一标识符是不正常的。请报告为错误:)