0

プロジェクトを分析するために C/C++ プラグイン 3.12 を使用して、SonarQube 5.6 をインストールしています。カバレッジ結果 (gcov) を生成しましたが、これまでのところアプリケーション C ファイルの 1 つだけです。カバレッジは 98.3% です。プロジェクト全体を分析すると、アプリケーション カバレッジの結果が「インポート」され、Web インターフェイスで追跡できます。

最上位のコード ページでは、そのファイルを含むフォルダーは 98.3% と表示されますが、これは正しくありません。他のすべての C ファイルについてはまだカバーされていないためです。次の一連のスナップショットでそれを示そうとしました。

(1) トップレベルのコード ツリー: トップレベルのコード ツリー

(2) 「実装」ツリーを下に移動します。 ここに画像の説明を入力

(3) 'Implementation/ComponentTemplate' ツリーをたどる: ここに画像の説明を入力

(4) 「Implementation/ComponentTemplate/code」ツリーをたどる: ここに画像の説明を入力

EXMPL.c には (4):113 行のコードしかありません。「実装」の総コード行数 (4):61k と比較すると、これは約 0.2% にすぎません。(1) の 98.3% の EXMPL.c のカバレッジは間違っています。

私のプロジェクトはいくつかのアプリケーションで構成されています。EXMPL は、プロジェクト内のすべてのアプリケーションの 1 つ (最小のもの) です。そのため、アプリケーションごとに個別のカバレッジ結果を生成し、それらを個別にソナーに「インポート」する必要があります。したがって、カバレッジ結果ファイルは別のフォルダーに配置されます。

そのプロジェクト構造またはカバレッジ結果の「不完全なインポート」が「間違った」カバレッジ測定の原因である可能性がありますが、これまでのところ、提供された gcov カバレッジ測定をソナーがどのように処理しているかについての有用な情報は見つかりませんでした。

どんな助けや情報も感謝します。ありがとう

4

1 に答える 1

1

2 番目の推測は正しいです。カバレッジ結果の不完全なインポートが、数値をゆがめているのです。カバレッジ レポートに含まれていない行は、カバレッジの計算に含まれません。現在のカバレッジ レポートには、93% がカバーされているファイルが 1 つしか含まれていないため、すべての数値はそれに基づいています。

于 2016-09-19T13:27:40.647 に答える