Python coverage

From wikinotes

Produce reports of which lines of code are not run by tests.

Documentation

official docs https://coverage.readthedocs.io

Usage

write report to .coverage

# run coverage
coverage run -m pytest

coverage run \
    --source path/A \
    --source path/B \
    --omit path/C

coverage reports

# combine coverage multiple reports into a single .coverage file
coverage combine .coverage1 .coverage2 ...

# produce XML report from a single .coverage file
coverage xml

# produce interactive HTML report (htmlcov/index.html)
# qutebrowser htmlcov/index.html
coverage html

Excluding Code

Append a comment to a line to exclude it. If that statement is a block of code, the entire block will be excluded.

if __name__ == '__main__':   # pragma: no cover
    # not included in coverage report...