gcovr
Generate C/C++ code coverage reports with gcov
What it is and what it does
Gcovr is a command-line tool that wraps GCC's gcov utility to collect and report code coverage from C and C++ projects. It reads raw coverage data generated by instrumented executables and transforms it into human-readable summaries or structured reports in formats like HTML, JSON, CSV, and various XML dialects (Cobertura, Clover, JaCoCo, LCOV, SonarQube). The tool is inspired by Python's coverage.py and fills a similar role for compiled languages.
You use gcovr after compiling your code with GCC's --coverage flag and running your test suite. It can produce compact console summaries, detailed HTML pages with per-file annotations, or machine-readable reports for integration with CI systems and coverage dashboards. The package depends on colorlog for colored output, jinja2 for HTML templating, lxml for XML processing, pygments for syntax highlighting, and tomli for configuration parsing.
Use it for:
- Generate coverage reports in CI/CD pipelines to track test quality across builds and commits.
- Create HTML coverage dashboards showing which lines of C/C++ code are exercised by tests.
- Export coverage data to Cobertura or SonarQube format for integration with quality gates.
- Produce JSON or CSV summaries of coverage metrics for automated analysis or metrics collection.
- Compare coverage across different test runs or branches using LCOV or Coveralls formats.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Gcovr processes GCC code coverage data and generates human-readable or machine-parseable coverage reports in multiple formats including HTML, JSON, CSV, XML (Cobertura, Clover, JaCoCo, LCOV, SonarQube), Markdown, and Coveralls.
Yes. Gcovr is a mature, actively maintained tool (production-stable, last commit 2026-08-12) with low install friction, no known vulnerabilities, and a permissive license. Install it if you need to measure or report code coverage for GCC-compiled C/C++ projects, especially in CI/CD contexts where structured output formats are required.
Install
gcovr on PyPI
pip
pip install gcovruv
uv add gcovrpoetry
poetry add gcovrInstalling gcovr
Before you install
Low install friction: pure Python wheel with five common dependencies (colorlog, jinja2, lxml, pygments, tomli). Active maintenance with last commit 2026-08-12 and 213 days since last release; stable production status.
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install gcovr
# After compiling C/C++ code with --coverage -g -O0 and running tests:
gcovr
# Generate detailed HTML report:
gcovr --html-details coverage.html
Requires GCC-compiled code instrumented with --coverage flag; gcov utility must be available on the system.
Verify before relying
- Whether gcovr works with Clang or other compilers beyond GCC.
- Performance characteristics when processing large codebases or many coverage files.
- Integration requirements with CI/CD systems beyond the CLI interface.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — colorlog, jinja2, lxml, pygments, tomli |
| Maintenance | actively maintained — 213 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,376,275/month — #2,316 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gcovr-8.6-py3-none-any.whl
Keywords: Cobertura, Jenkins, coverage, gcc, gcov, lcov
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
fastcovFastcov generates code coverage reports in…
permissive · top 15,000 on PyPI
lcov-coberturaConverts code coverage reports from lcov format…
permissive · top 5,000 on PyPI
nosexcoverGenerates Cobertura-style XML coverage reports…
permissive · top 15,000 on PyPI
pycoberturaParses Cobertura code coverage reports and…
permissive · top 15,000 on PyPI
diff-coverCompares test coverage reports against git…
permissive · top 1,000 on PyPI
slipcoverSlipCover is a fast code coverage tool that…
permissive · top 15,000 on PyPI
pytest-htmlGenerates HTML reports for pytest test results,…
copyleft · top 1,000 on PyPI
junit2htmlConverts JUnit or XUnit XML test result files…
permissive · top 5,000 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
codecov-cliA command-line interface for interacting with…
unclear · top 5,000 on PyPI