私の質問は、SonarQube 5.3 API から値を返さない新しいコード カバレッジ メトリックにここに投稿された質問の続きです。
最近、new_coverage やその他の新しいメトリックを活用するために、Sonar 5.3 をロールアウトしました。しかし、数日分のコード分析を行った結果、Sonar が new_coverage メトリックを正しく計測していないことがわかりました。ただし、new_violations などを計測することはできます。
この状況はかなり定期的であり、いくつかの Java ベースのプロジェクトで発生しています。分析の実行後、Sonar は ncloc、new_violations などの変更を報告しますが、new_coverage の var2 と fvar2 の値は報告しません。URL https://internal.sonar.server.com/api/resources?resource=prj_key&format=json&metrics=ncloc,new_coverage&includealerts=true&includetrends=trueの 1 つのアプリケーションに対する応答の例を次に示します。
[
{
"creationDate": "2016-04-06T15:51:29-0400",
"date": "2016-06-20T21:48:27-0400",
"description": "",
"id": 6610,
"key": "<PRJ_KEY>",
"lname": "<PRJ_LNAME>",
"name": "<PRJ_LNAME>",
"p1": "previous_version",
"p1d": "2016-06-06T02:21:39-0400",
"p1p": "16.06.00-SNAPSHOT",
"p2": "previous_analysis",
"p2d": "2016-06-20T16:42:38-0400",
"p2p": "2016-06-20",
"p3": "days",
"p3d": "2016-05-22T02:22:57-0400",
"p3p": "30",
"qualifier": "TRK",
"scope": "PRJ",
"uuid": "AVPtITChBmbOnKmhsXJi",
"version": "16.06.01-SNAPSHOT",
"msr": [
{
"alert": null,
"alert_text": null,
"frmt_val": "41,589",
"fvar1": "483",
"fvar2": "9",
"fvar3": "743",
"key": "ncloc",
"val": 41589.0,
"var1": 483.0,
"var2": 9.0,
"var3": 743.0
},
{
"alert": null,
"alert_text": null,
"frmt_val": "47.9%",
"fvar1": "-0.4%",
"fvar2": "0.0%",
"fvar3": "-0.3%",
"key": "coverage",
"val": 47.9,
"var1": -0.399999999999999,
"var2": 0.0,
"var3": -0.300000000000004
},
{
"alert": "OK",
"alert_text": null,
"fvar1": "15.2%",
"fvar3": "28.1%",
"key": "new_coverage",
"var1": 15.2317880794702,
"var3": 28.1407035175879
}
]
}
]
上記の応答でわかるように、以前の分析以降に変更されたコード行があります (これらの行はすべて機能コード内にあり、無視されていません。ただし、分析が行われたばかりであるにもかかわらず、new_coverage フィールドの var2 の値はありません。問題は API だけでなく、UI 側にもあります.いくつかのメトリクスの新しいカバレッジ メトリクスの「以前の分析以降の値」は見られませんが、他の新しいコード メトリクスと全体的なカバレッジは問題ありません.