1

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

  1. 新覆盖
  2. new_line_coverage(等)

我正在调用 api:

https:///api/resources?format=json&metrics=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

4

1 回答 1

6

现代方式(api/measures/component)

SonarQube 的api/resourcesWeb API已弃用,您应该api/measures/component改用(自 5.4 起)。

这个项目为例:

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 版本),那么请记住,对于指标有一个时间增量的概念(什么时候开始?),所以你必须添加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 信息可用的项目)。

于 2016-03-29T12:25:11.730 回答