2017-12-31 14 views
1

こんにちは私はサポートされていない言語のカスタムプラグインを使用していますので、カバレッジ情報を表示したいと思います。SonarQubeの包括的なカバレッジXMLを使用して、カバーされていないファイルを0カバレッジとして処理するにはどうすればよいですか?

私はインポートしたカバレッジは、まだすべてのためのユニットテストがないよう

マイカバレッジ情報のみがプロジェクト内のファイルの数のためであるプロパティsonar.coverageReportPathsを使用してXML形式で生成されました。

私は、提供された範囲内のコード行とコード行の合計の割合として表現された範囲率を期待していました。 10行のコードを含む10個のファイルがあり、100%のカバレッジで1つのファイルのカバレッジ情報を提供すると、全体カバレッジは10%(10/100)と表示されます。

代わりに100%(10/10)が表示されます。つまり、カバレッジ情報を含むファイルのみが合計の一部と見なされます。私は、カバレッジは、プロジェクトのコード行全体のうち、少なくともそれを理解する方法のパーセンテージとして、カバーラインとして計算されると仮定していました。

C++プラグインでsonar.cxx.coverage.forceZeroCoverageという名前のプロパティが見つかりました。これは、このようなもの、つまりカバレッジ情報のないソースファイルには0カバレッジがあると見なされると仮定しているようです。

私が一般的なカバレッジに使用できるのと同様のものがありますか、アプリケーションの他のすべての行が明らかになっていることを示すカバレッジXMLを生成する方法を見つけなければなりませんか?

+0

これはオープンソースのC++プラグインです:

ここのようにカバー可能識別するために、どのラインを決定する際SonarSourceが内部で使用ガイドラインはありますか? –

答えて

1

言語のプラグインは、実行可能行を実装する必要があります。それはどのラインがであるべきかを特定します。をカバーします。プラットフォームはそこから数学を取ります。 https://docs.sonarqube.org/display/DEV/Executable+Lines

+0

ありがとうございました、それは私たちがそれを働かせるために非常に役立ちました! CoreMetrics.LINES_TO_COVERとCoreMetrics.UNCOVERED_LINESも動作しますが、個々の線を塗りつぶし/塗りつぶさずに塗りつぶすことはありません。 –

関連する問題