基于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
相关产品推荐
相关产品推荐

