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

Jira Cloud Xray文档生成器:如何检测测试计划修复版本与关联缺陷影响版本的交集非空

Jira Cloud Xray文档生成器:如何检测测试计划修复版本与关联缺陷影响版本的交集非空

我太懂你这种头疼的情况了——之前用字符串contains判断版本匹配,单值的时候还能凑合用,一旦测试计划或缺陷的版本字段是多值,直接就失效了。毕竟我们要的是两个版本集合有没有重叠,不是单字符串里有没有包含另一个子串对吧?

好在Xray文档生成器的模板语法(基于Velocity)完全支持集合操作,给你两种靠谱的实现方案,按需选就行:

方案一:用Xray内置的集合方法(简洁首选)

Xray对多值字段(比如FixVersions、AffectedVersions)会自动封装成集合对象,这类对象自带了containsAny()方法——这个方法专门用来检查两个集合是否存在至少一个共同元素,完美命中我们的需求。

把你原来的模板代码修改成这样就行:

#{for testExecutions}
  #{for l=TestExecutions[n].LinksCount|filter=%{'${TestExecutions[n].Links[l].IssueTypeName}'.equals('Bug') && ${FixVersions}.containsAny(${TestExecutions[n].Links[l].AffectedVersions})}
    <!-- 这里写你要输出的缺陷内容,比如缺陷ID、标题、影响版本等 -->
    缺陷ID: ${TestExecutions[n].Links[l].Key}
    缺陷标题: ${TestExecutions[n].Links[l].Summary}
  #{end}
#{end}

为什么这个好用?

  • 代码简洁,不需要自己写嵌套循环
  • 底层是集合级别的匹配,不会像字符串contains那样出现误判(比如不会把v1.0和v1.0.1当成匹配)
  • 渲染效率高,Xray内部会优化集合操作的性能

方案二:手动嵌套循环(兼容性拉满)

如果你的Xray版本比较旧,或者担心内置方法有兼容性问题,也可以用手动遍历的方式,自己检查两个版本集合的交集:

#{for testExecutions}
  #{for l=TestExecutions[n].LinksCount|filter=%{'${TestExecutions[n].Links[l].IssueTypeName}'.equals('Bug')}
    #{set hasIntersection = false}
    <!-- 遍历测试计划的所有修复版本 -->
    #{for fixVersion in FixVersions}
      <!-- 遍历当前缺陷的所有影响版本 -->
      #{for affectedVersion in TestExecutions[n].Links[l].AffectedVersions}
        #{if fixVersion == affectedVersion}
          #{set hasIntersection = true}
          #{break} <!-- 找到匹配就跳出内层循环,不用继续遍历 -->
        #{/if}
      #{/for}
      #{if hasIntersection}
        #{break} <!-- 已经找到交集,直接跳出外层循环 -->
      #{/if}
    #{/for}
    <!-- 只有当交集存在时,才输出缺陷内容 -->
    #{if hasIntersection}
      缺陷ID: ${TestExecutions[n].Links[l].Key}
      缺陷标题: ${TestExecutions[n].Links[l].Summary}
    #{/if}
  #{end}
#{end}

注意事项

  • 绝对不要把多值版本字段转成字符串来判断!比如'${FixVersions}'.contains(...)这种写法,会把集合转成类似[v1.0, v2.0]的字符串,很容易出现误判
  • 用#{break}指令可以提前终止不必要的循环,避免模板渲染变慢,尤其是当版本数量比较多的时候
  • 确保变量引用的正确性:FixVersions是当前测试计划的多值字段,TestExecutions[n].Links[l].AffectedVersions是关联缺陷的多值字段,Xray会自动处理它们的集合类型

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 06:59:30