Code coverage testing for Python.
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 these versions of Python:
- Python 3.8 through 3.12, and 3.13.0a3 and up.
- PyPy3 versions 3.8 through 3.10.
New in 7.x:
experimental support for sys.monitoring;
dropped support for Python 3.7;
Coverage.collect() context manager;
improved data combining;
[run] exclude_also setting;
New in 6.x: dropped support for Python 2.7, 3.5, and 3.6; write data on SIGTERM; added support for 3.10 match/case statements.
|Available as part of the Tidelift Subscription. Coverage and thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use. If you want the flexibility of open source and the confidence of commercial-grade software, this is for you. Learn more.
Looking to run
coverage on your test suite? See the Quick Start section
of the docs.
The complete history of changes is on the change history page.
Code of Conduct
Everyone participating in the coverage.py project is expected to treat other people with respect and to follow the guidelines articulated in the Python Community Code of Conduct.
Found a bug? Want to help improve the code or documentation? See the Contributing section of the docs.
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.