generate GCC code coverage reports
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.
gcovr command can produce different kinds of coverage reports:
- default: compact human-readable summaries
--html: HTML summaries
--html-details: HTML report with annotated source files
--xml: machine readable XML reports in Cobertura format
--sonarqube: machine readable XML reports in Sonarqube format
--json: JSON report with source files structure and coverage
--csv: CSV report summarizing the coverage of each file
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:
-fprofile-arcs -ftest-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.
-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.