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

基于Item Path,用DAX在Power BI统计Feature等的直/间接测试用例数

解决Power BI中基于Item Path统计工作项测试用例数的DAX方案

问题分析

核心问题在于Feature无父工作项ID,导致原有基于Parent Work Item Id的关联逻辑失效。而Item Path字段包含完整层级路径(如\项目\Feature 1\Requirement 1\Test Case 1),可通过路径匹配实现当前工作项的直接、间接子级测试用例统计。

核心DAX代码

假设你的数据集表名为WorkItems,包含字段:Item Path(完整层级路径)、Work Item Type(工作项类型)、Work Item Id(唯一ID)。

统计直接+间接测试用例总数

Test Case Count = 
VAR CurrentPath = SELECTEDVALUE(WorkItems[Item Path])
VAR CurrentId = SELECTEDVALUE(WorkItems[Work Item Id])
VAR TargetTestCases = 
    FILTER(
        ALL(WorkItems),
        WorkItems[Work Item Type] = "Test Case" &&
        -- 匹配路径前缀,确保测试用例属于当前项的层级分支
        LEFT(WorkItems[Item Path], LEN(CurrentPath)) = CurrentPath &&
        -- 排除当前项本身(防止误统计非测试用例项)
        WorkItems[Work Item Id] <> CurrentId
    )
RETURN
    COUNTROWS(TargetTestCases)

区分直接子级/间接子级测试用例

如果需要分别统计直接关联和间接关联的测试用例,可添加层级判断:

-- 直接子级测试用例数(仅下一层级)
Direct Test Case Count = 
VAR CurrentPath = SELECTEDVALUE(WorkItems[Item Path])
VAR CurrentLevel = PATHLENGTH(SUBSTITUTE(CurrentPath, "\", "|"))
VAR DirectTestCases = 
    FILTER(
        ALL(WorkItems),
        WorkItems[Work Item Type] = "Test Case" &&
        LEFT(WorkItems[Item Path], LEN(CurrentPath)) = CurrentPath &&
        -- 测试用例路径层级比当前项多1级
        PATHLENGTH(SUBSTITUTE(WorkItems[Item Path], "\", "|")) = CurrentLevel + 1
    )
RETURN
    COUNTROWS(DirectTestCases)

-- 间接子级测试用例数(除直接子级外的所有下级)
Indirect Test Case Count = [Test Case Count] - [Direct Test Case Count]

验证注意事项

  • 确保Item Path的分隔符统一(如统一用\或/,需与代码中替换字符一致)
  • 测试用例的Item Path必须完整包含其父级Feature、Requirement的路径
  • 若存在同名工作项,需通过Work Item Id确保统计唯一性

内容的提问来源于stack exchange,提问作者kudlatiger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:13:11