Reportgenerator转换为Cobertura、Sonar格式时跳过特定项目覆盖率问题
问题根因及解决方案
这个问题的核心是Reportgenerator对不同格式导出时的项目过滤、解析逻辑不一致,常见触发场景和对应解决方法如下:
- 首先排查被跳过项目的程序集名称/命名空间是否和你配置的
-filters参数规则冲突:HTML格式导出时会忽略部分模糊匹配的过滤规则,但Cobertura、SonarQube格式导出时会严格执行过滤规则,优先检查你是否误写了排除规则命中了该项目 - 检查该项目的输出路径是否包含特殊字符(如非ASCII字符、空格、连续特殊符号):dotCover生成的原始报告中如果程序集路径包含特殊字符,Reportgenerator做结构化输出(Cobertura/SonarQube都是XML/JSON结构化格式)时会跳过解析异常的程序集,HTML是松散输出所以不受影响
- 检查Reportgenerator版本:
4.8.x之前的版本存在已知bug,对dotCover的dcvr格式原始报告导出结构化格式时,会跳过没有直接关联测试项目的业务项目,升级到4.8.13及以上版本即可解决 - 如果上述排查都无效,可以强制指定包含该项目的程序集:在Reportgenerator执行命令中添加
-assemblies:"*你的项目程序集名称.dll"参数,强制结构化导出时包含该程序集数据
内容的提问来源于stack exchange,提问作者Siarhei Machel
相关产品推荐
相关产品推荐

