SonarQube 如何通过 JaCoCo 计算覆盖范围?

Whi*_*cal 1 jacoco sonarqube

JaCoCo 只输出 jacococ.exec,这是声纳的输入。在那个文件中,似乎只有信息:

- Class name
- Total Class Probes
- Executed Class Probes
Run Code Online (Sandbox Code Playgroud)

但是,SonarQube 不能仅仅依赖于这些值,因为它需要告诉您哪些是未转换的确切行,因此 Sonar 正在对其自身进行分析。那么它是如何使用 Jacoco 报告的呢?为什么需要它?

God*_*din 5

那么它是如何使用 Jacoco 报告的呢?为什么需要它?

SonarQube 本身并不/无法了解您实际执行了哪些测试以及它们如何覆盖您的代码。要获取此信息,它依赖于第三方测试覆盖率工具。在 Java 的情况下,它依赖于 JaCoCo 收集和提供的数据,如您对类似问题的回答(JaCoCo 在exec文件中收集执行信息,并class在生成报告期间从文件中获取行号和其他信息),或者 SonarQube 可以依赖“通用格式”中的数据。