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

New code coverage metrics not returning values from SonarQube 5.3 API

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

  1. new_coverage
  2. new_line_coverage (等等)

我正在调用 api :

https:///api/resources?format=json&metrics=ncloc,line_coverage,new_line_coverage

甚至 Public Nemo 实例也不 return 这些指标值:

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

上面的 API 只是 return 每个项目的 ncloc 和 line_coverage。

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

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

现代方式 (api/measures/component)

SonarQube 的 api/resources Web 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/resources)

如果你真的坚持使用 api/resources(例如旧的 SonarQube 版本),那么请记住,对于 new 指标,有一个时间增量的概念( new 从什么时候开始?),因此您必须在请求中添加 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 信息的项目)。