Coverage.py measures code coverage, typically during test execution. It uses the code analysis tools and tracing hooks provided in the Python standard library to determine which lines are executable, and which have been executed.
Coverage.py runs on many versions of Python:
- CPython 2.7 and 3.4 through 3.7.
- PyPy2 6.0 and PyPy3 6.0.
- Jython 2.7.1, though not for reporting.
- IronPython 2.7.7, though not for reporting.
New in 5.0: Dropped support for Python 2.6 and 3.3.
New in 4.5: Configurator plug-ins.
New in 4.4: Suppressable warnings, continuous coverage measurement.
New in 4.3: HTML --skip-covered, sys.excepthook support, tox.ini support.
New in 4.2: better support for multiprocessing and combining data.
New in 4.1: much-improved branch coverage.
New in 4.0: --concurrency, plugins for non-Python files, setup.cfg support, --skip-covered, HTML filtering, and more than 50 issues closed.