Introduction

generate GCC code coverage reports

website and documentationbugtrackerGitHub

Gcovr provides a utility for managing the use of the GNU gcov utility and generating summarized code coverage results. This command is inspired by the Python coverage.py package, which provides a similar utility for Python.

The gcovr command can produce different kinds of coverage reports:

CLI Option User Guide Description
default, --txt Text Output compact human-readable summaries
--html HTML Output overview of all files
--html-details HTML Output annotated source files
--cobertura Cobertura XML Output machine readable XML reports in Cobertura format
--sonarqube Sonarqube XML Output machine readable XML reports in Sonarqube format
--json JSON Output JSON report with source file structure and coverage
--json-summary JSON Output JSON summary coverage report
--csv CSV Output CSV report summarizing the coverage of each file
--coveralls Coveralls JSON Output machine readable JSON report in Coveralls format

Thus, gcovr can be viewed as a command-line alternative to the lcov utility, which runs gcov and generates an HTML-formatted report. The development of gcovr was motivated by the need for text summaries and XML reports.

Example HTML summary:


gcovr - 图1

Example HTML details:


gcovr - 图2

Installation

Gcovr is available as a Python package that can be installed via pip.

Install newest stable gcovr release from PyPI:
pip install gcovr

Install development version from GitHub:
pip install git+[https://github.com/gcovr/gcovr.git](https://github.com/gcovr/gcovr.git)

Quickstart

GCC can instrument the executables to emit coverage data. You need to recompile your code with the following flags:

--coverage -g -O0

Next, run your test suite. This will generate raw coverage files.

Finally, invoke gcovr. This will print a tabular report on the console.

gcovr

You can also generate detailed HTML reports:

gcovr --html-details coverage.html

Gcovr will create one HTML report per source file next to the coverage.html summary.

You should run gcovr from the build directory. The -r option should point to the root of your project. This only matters if you have a separate build directory. For example:

cd build; gcovr -r ..

For complete documentation, read the manual.

Contributing

If you want to report a bug or contribute to gcovr development, please read our contributing guidelines first: https://github.com/gcovr/gcovr/blob/master/CONTRIBUTING.rst

License

Copyright (c) 2013-2022 the gcovr authors Copyright (c) 2013 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.

This software is distributed under the 3-clause BSD License. See LICENSE.txt for full details. See AUTHORS.txt for the full list of contributors.

Gcovr development moved to this repository in September, 2013 from Sandia National Laboratories.
https://github.com/gcovr/gcovr/blob/master/README.rst