JaCoCo 动态排除覆盖率为 0% 的包

JaCoCo exclude packages with 0% coverage dynamically

我正在尝试对为一系列测试生成的 JaCoCo XML 报告进行一些解析。

问题是,对于他们中的大多数人来说,到目前为止我们的覆盖范围还很小,XML 报告是 59MB。我想通过在报告中完全不包含覆盖率为 0% 的包来进行优化,以便解析更有效率。不同的测试包含不同的包,所以我不能真正硬编码要排除的包。

所以问题是,JaCoCO 是否有一个报告生成选项,我可以在其中指定不为覆盖率为 0% 的包写入信息?

这看起来像是过早的优化,尤其是您没有给出要优化的指标的测量值(顺便说一句,是内存还是性能?)。此外,IMO 59 MB 现在看起来并不大,无论是在内存消耗还是性能方面。也许你应该重新考虑解析 XML 的方式而不是报告的内容。例如,有 XML 流解析器,允许跳过不感兴趣的部分并且不在内存中保留 DOM。

回答最初的问题:不,截至今天,JaCoCo 中没有选项可以调整 XML 的内容。但是,也许您可​​以使用更紧凑的 CSV 报告。您也可以使用 JaCoCo API 编写自己的报告生成器。 JaCoCo documentation includes Javadoc as well as some usage examples, including example of generation of report.