HTML Output
The gcovr command can generate a simple
HTML output using the --html option:
gcovr --html example_html.html
This generates a HTML summary of the lines executed. In this
example, the file example_html.html is generated, which has the
following output:
The default behavior of the --html option is to generate
HTML for a single webpage that summarizes the coverage for all files.
If the given name ends with the suffix .gz the report is compressed by gzip,
if it ends with .xz it is compressed by LZMA.
This only make sense for a self contained report with one page.
The --html-details option is used to create a separate web
page for each file. Each of these web pages includes the contents of
the file with annotations that summarize code coverage. Consider
the following command:
gcovr --html-details example_html.details.html
This generates the following HTML page for the file example.cpp:
The --html-nested option is used to create a separate web page
for each file and directory. Each of these web pages includes the contents
of the file with annotations that summarize code coverage. Consider
the following command:
gcovr --html-nested example_html.nested.html
Note that the --html and --html-details options need
a named output, e.g. via the the --output option.
For example, if the output is named coverage.html,
then the web pages generated for each file will have names of the form
coverage.<filename>.html.
The --html-self-contained option controls
whether assets like CSS styles are bundled into the HTML file.
The --html report defaults to self-contained mode,
but --html-details and --html-nested default to
--no-html-self-contained
in order to avoid problems with the Content Security Policy
of some servers, especially Jenkins.
The --html-theme option controls the theme and color of HTML report.
The --html-template-dir option allows you to use an
alternate directory with Jinja2 templates to fully customize the HTML output in detail.
If a template is missing from this directory the original is used. It is advised that you
start by copying the part you want to modify from
the existing default theme templates
, the existing github theme templates.
or the existing common templates.
Keep in mind the template context data that is passed to these templates MAY change
between release versions.
Following templates are referenced from the python code, all other files are referenced in the templates themselves:
<theme>/directory_page.html: Template for directory overview pages (used by--html-details).<theme>/function_page.html: Template for functions overview page (used by--html-details).<theme>/source_page.html: Template for source code details pages (used by--html-details).<theme>/style.css: Template for CSS stylesheet (always used).common/gcovr.js: Template for javascript code (always used).common/single_page.html: Template for single page report (used by--html-single-page).
Note that you do not have to copy every single template and can copy and edit only the templates you wish to customize.
Changed in version 8.5: Added --html-static-report and remove argument from --html-single-page.
Changed in version 8.4: The total number of elements now also contain the excluded once because they are also listed.
Added in version 7.0: Added --html-template-dir.
Added in version 6.0: Added --html-nested and --html-syntax-highlighting.
Added in version 5.0: Added --html-self-contained.
Changed in version 5.0: Default to external CSS file for --html-details.