Jenkins Plot插件绘制Lizard代码复杂度图表为空无报错如何解决
问题根因
你当前配置的XPath仅定位到了<average>节点本身,但目标数值存储在节点的value属性中,而非节点的文本内容,Plot插件无法直接从节点对象提取到数值,因此图表无数据。
修复步骤
1. 调整XPath指向属性值
在原有XPath末尾添加/@value提取value属性值,同时建议使用@type属性定位<measure>节点,比下标索引兼容性更强,避免后续XML结构调整导致定位失效。
2. 补充数据序列名称
为每个数据序列添加name字段,明确指标含义,同时保证CSV生成的列名符合要求。
3. 明确数值类型
将nodeType设置为NUMBER,避免类型转换异常。
修复后完整配置参考
plot csvFileName: 'plot-lizard-code-complexity.csv', group: 'Code Complexity', numBuilds: '20', style: 'line', title: 'Code Complexity', xmlSeries: [ [file: 'lizard_report.xml', nodeType: 'NUMBER', url: '', xpath: '/cppncss/measure[@type="File"]/average[@label="NCSS"]/@value', name: '单文件平均NCSS'], [file: 'lizard_report.xml', nodeType: 'NUMBER', url: '', xpath: '/cppncss/measure[@type="File"]/average[@label="CCN"]/@value', name: '单文件平均CCN'], [file: 'lizard_report.xml', nodeType: 'NUMBER', url: '', xpath: '/cppncss/measure[@type="File"]/average[@label="Functions"]/@value', name: '单文件平均函数数'], [file: 'lizard_report.xml', nodeType: 'NUMBER', url: '', xpath: '/cppncss/measure[@type="Function"]/average[@label="NCSS"]/@value', name: '单函数平均NCSS'], [file: 'lizard_report.xml', nodeType: 'NUMBER', url: '', xpath: '/cppncss/measure[@type="Function"]/average[@label="CCN"]/@value', name: '单函数平均CCN'] ], yaxis: 'Complexity'
验证方法
修改配置执行构建后,可进入对应构建号的工作目录,找到生成的plot-lizard-code-complexity.csv文件,检查文件内是否已写入对应数值,确认数据正常后刷新Plot图表即可看到趋势。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

