【问题标题】:Importing test results creates duplicate test导入测试结果会创建重复测试
【发布时间】:2020-05-05 20:11:11
【问题描述】:

这是我们要做的事情:

  1. 通过 REST API 创建一个新测试,测试类型为自动[通用],并确保测试定义字段按要求填充(类路径+'.'+类名)。假设此测试的测试密钥是 MYPROJ-999。

  2. 我们运行自动化测试并为 #1 中创建的同一测试生成 Junit xml report.xml。

  3. 我们使用 REST API 发布结果。

curl -H "Content-Type: multipart/form-data" -u user: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 创建的测试表现不同。

【问题讨论】:

    标签: jira jira-xray


    【解决方案1】:

    经过大量调试,我找到了根本原因,它是如此微不足道,但却导致了大问题。不确定这是否是一个错误??

    无论如何,事情就是这样。

    当我们使用 Jira 应用 UI 创建自动 [Generic] 类型的测试或通过导入结果 API 创建测试时,测试定义字段包含 classpath+'.'+classname 值的值,但在正文的开头。

    但是当我通过创建问题 api 端点创建测试并填充定义字段时,我没有在 classpath+'.'+classname 值的开头给出空格,因为我什至不知道 Jira/Xray在开头添加一个空格。

    因此,我通过在 json 有效负载中的测试定义字段中留出一个空格并创建一个测试然后尝试导入相同测试的结果来进行测试,我发现没有创建重复的测试。

    【讨论】:

      【解决方案2】:

      包含唯一标识符的通用定义字段开头的空格是不正常的。请将其报告为错误:)

      【讨论】:

      • 考虑将此作为评论而不是答案发布。获得一定数量的声望点后,您将能够将 cmets 发布到其他问题/答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多