新代码覆盖率指标未从SonarQube 5.3 API返回值

时间:2016-03-27 17:55:46

标签: sonarqube sonarqube-5.0 sonarqube5.3 sonarqube-web

我需要通过api获取新的代码更改的单元测试覆盖率数据。指标。我可以在SonarQubeDashboard中看到数据,但api没有为指标返回任何值,如:

  1. new_coverage
  2. new_line_coverage (等)
  3. 我正在调用api:

    的https:/// API /资源格式= JSON&安培;度量= ncloc,line_coverage,new_line_coverage

    即使公共Nemo实例也不会返回这些指标值:

    https://nemo.sonarqube.org/api/resources?format=json&metrics=ncloc,line_coverage,new_line_coverage,new_coverage

    上述API仅为每个项目返回ncloc和line_coverage。

    请不要告诉我检查这些指标是否在版本中不可用。如果您调用API,它们就是:

    https://nemo.sonarqube.org/api/metrics/search

1 个答案:

答案 0 :(得分:5)

现代方式(api / measure / component)

SonarQube的api/resources网址API is deprecated,您应该使用api/measures/component代替(自5.4起)。

this project为例:

  

https://nemo.sonarqube.org/api/measures/component?componentKey=org.sonarsource.php%3Aphp&metricKeys=ncloc,line_coverage,new_line_coverage,new_coverage&additionalFields=metrics,periods

旧方法(api /资源)

如果您真的遇到api/resources(例如旧的SonarQube版本),请记住,对于 new 指标,有一个时间增量概念( new < / em>从什么时候开始?),所以你必须在你的请求中添加includetrends=true。让我们用你的例子做到这一点:

  

https://nemo.sonarqube.org/api/resources?format=json&metrics=ncloc,line_coverage,new_line_coverage,new_coverage&includetrends=true

这为您提供了new_coveragenew_line_coverage(对于确实具有覆盖范围和SCM信息的项目)。