GCCコードカバレッジレポートを生成する
Web サイトとドキュメント • バグトラッカー • GitHub
Gcovr は、GNU gcov ユーティリティの使用を管理し、要約されたコード カバレッジ結果を生成するためのユーティリティを提供します。このコマンドは、Python に同様のユーティリティを提供する Python cover.py パッケージからインスピレーションを得ています。
gcovr
コマンドは、さまざまな種類のカバレッジ レポートを作成できます。
CLI オプション | ユーザーガイド | 説明 |
---|---|---|
デフォルト、 --txt | テキスト出力 | 人間が読めるコンパクトな要約 |
--html | HTML出力 | すべてのファイルの概要 |
--html-details | HTML出力 | 注釈付きソースファイル |
--html-template-dir | HTML出力 | Jinja2 テンプレートのカスタム セットを使用する |
--csv | CSV出力 | 各ファイルの範囲を要約した CSV レポート |
--json | JSON出力 | ソースファイル構造とカバレッジを含む JSON レポート |
--json-summary | JSON出力 | JSONサマリーカバレッジレポート |
--clover | クローバー XML 出力 | Clover 形式の機械可読 XML レポート |
--cobertura | Cobertura XML 出力 | Cobertura 形式の機械可読 XML レポート |
--coveralls | つなぎ服の JSON 出力 | カバーオール形式の機械可読 JSON レポート |
--jacoco | JaCoCo XML 出力 | JaCoCo 形式の機械可読 XML レポート |
--lcov | LCOV情報出力 | LCOV 情報形式の機械可読レポート |
--sonarqube | SonarQube XML 出力 | SonarQube 形式の機械可読 XML レポート |
したがって、gcovr は、gcov を実行して HTML 形式のレポートを生成する lcov ユーティリティの代替コマンド ラインとみなすことができます。 gcovr の開発は、テキストの概要と XML レポートの必要性によって動機付けられました。
HTML の概要の例:
HTML の詳細の例:
Gcovr は、pip 経由でインストールできる Python パッケージとして入手できます。
PyPI から最新の安定したgcovr
リリースをインストールします。
pip install gcovr
GitHub から開発バージョンをインストールします (pip のバージョン 21.3 以上が必要です)。
pip install git+https://github.com/gcovr/gcovr.git
GCC は実行可能ファイルをインストルメント化してカバレッジ データを出力できます。次のフラグを使用してコードを再コンパイルする必要があります。
--カバレッジ -g -O0
次に、テスト スイートを実行します。これにより、生のカバレッジ ファイルが生成されます。
最後に、gcovr を呼び出します。これにより、コンソールに表形式のレポートが印刷されます。
gcovr
詳細またはネストされた HTML レポートを生成することもできます。
gcovr --html-details カバレッジ.html gcovr --html-ネストされたカバレッジ.html
Gcovr は、ソース ファイルごとに 1 つの HTML レポートを作成します。また、 --html-nested
の場合は、coverage.html 概要の隣のディレクトリごとに 1 つの HTML レポートを作成します。
ビルド ディレクトリから gcovr を実行する必要があります。 -r
オプションはプロジェクトのルートを指す必要があります。これは、別のビルド ディレクトリがある場合にのみ重要です。例えば:
cd ビルド; gcovr -r ..
完全なドキュメントについては、マニュアルをお読みください。
バグを報告したり、gcovr 開発に貢献したい場合は、まず貢献ガイドラインをお読みください: https://gcovr.com/en/latest/contributing.html
このソフトウェアは、3 条項の BSD ライセンスに基づいて配布されます。詳細については、https://gcovr.com/en/latest/license.html#license-terms を参照してください。貢献者の完全なリストについては、https://gcovr.com/en/latest/license.html#acknowledgements を参照してください。