Sonarqube API 单个 class 测试覆盖率

Sonarqube API single class test coverage

我正在尝试通过 SonarQube API(Sonar 版本 4.1.2)检索单个 classes 的单元测试代码覆盖率。一切正常,当我直接转到声纳仪表板并转到 class:

的覆盖选项卡时,我可以看到指标正常
    93.9%   by unit tests Line coverage: 97.9% (285/291) Branch coverage: 85.0% (113/133)

任何人都可以告诉我通过声纳 API 接口检索此 same/similar 信息的正确调用吗?我已经查看了 http://docs.sonarqube.org/display/SONAR/Metric+definitions 上的文档,可以在项目级别返回测试覆盖率指标,但我看不到如何为单个 classes 构建查询。

我想这就是你想要的

[主机名]/api/resources?resource=[com.test]:[模块名称]:[完全限定 class]&metrics=coverage,branch_coverage

我在下面添加了一个示例。

http://sonar-server/api/resources?resource=com.test:module:com.test.service.impl.CheckServiceImpl&metrics=coverage,branch_coverage

我查看了您分享的页面并使用了这个:

http://docs.codehaus.org/pages/viewpage.action?pageId=229743280

api/measures/component_tree是你的朋友

result = session.get(        
    SONAR_BASE + "api/measures/component_tree",        
    params={"baseComponentId": COMPONENT, "metricKeys": "coverage"   )
)

将您的覆盖范围缩小到文件级别。您应该只能使用 "leaves" 策略获取文件。