generate GCC code coverage reports
website • documentation • bugtracker • GitHub
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:
- default or :option:`--txt<gcovr --txt>`: compact human-readable summaries
- :option:`--html<gcovr --html>`: HTML summaries
- :option:`--html-details<gcovr --html-details>`: HTML report with annotated source files
- :option:`-x/--xml<gcovr --xml>`: machine readable XML reports in Cobertura format
- :option:`--sonarqube<gcovr --sonarqube>`: machine readable XML reports in Sonarqube format
- :option:`--json<gcovr --json>`: JSON report with source files structure and coverage
- :option:`--json-summary<gcovr --json-summary>`: JSON summary coverage report
- :option:`--csv<gcovr --csv>`: CSV report summarizing the coverage of each file
- :option:`--coveralls<gcovr --coveralls>`: machine readable JSON reports 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:
Example HTML details:
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
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 -r .
You can also generate detailed HTML reports:
gcovr -r . --html --html-details -o 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 complete documentation, read the manual.
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
Copyright 2013-2018 the gcovr authors
Copyright 2013 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.
Gcovr is available 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.