| .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
| .. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
| |
| =========== |
| Coverage.py |
| =========== |
| |
| Code coverage measurement for Python. |
| |
| .. image:: https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg |
| :target: https://vshymanskyy.github.io/StandWithUkraine |
| :alt: Stand with Ukraine |
| |
| ------------- |
| |
| | |kit| |license| |versions| |
| | |test-status| |quality-status| |docs| |metacov| |
| | |tidelift| |sponsor| |stars| |mastodon-coveragepy| |mastodon-nedbat| |
| |
| 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: |
| |
| .. PYVERSIONS |
| |
| * Python 3.8 through 3.12, and 3.13.0b3. |
| * PyPy3 versions 3.8 through 3.10. |
| |
| Documentation is on `Read the Docs`_. Code repository and issue tracker are on |
| `GitHub`_. |
| |
| .. _Read the Docs: https://coverage.readthedocs.io/ |
| .. _GitHub: https://github.com/nedbat/coveragepy |
| |
| **New in 7.x:** |
| multi-line exclusion patterns; |
| function/class reporting; |
| experimental support for sys.monitoring; |
| dropped support for Python 3.7; |
| added ``Coverage.collect()`` context manager; |
| improved data combining; |
| ``[run] exclude_also`` setting; |
| ``report --format=``; |
| type annotations. |
| |
| **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. |
| |
| |
| For Enterprise |
| -------------- |
| |
| .. |tideliftlogo| image:: https://nedbatchelder.com/pix/Tidelift_Logo_small.png |
| :alt: Tidelift |
| :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme |
| |
| .. list-table:: |
| :widths: 10 100 |
| |
| * - |tideliftlogo| |
| - `Available as part of the Tidelift Subscription. <https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme>`_ |
| 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. <https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme>`_ |
| |
| |
| Getting Started |
| --------------- |
| |
| Looking to run ``coverage`` on your test suite? See the `Quick Start section`_ |
| of the docs. |
| |
| .. _Quick Start section: https://coverage.readthedocs.io/#quick-start |
| |
| |
| Change history |
| -------------- |
| |
| The complete history of changes is on the `change history page`_. |
| |
| .. _change history page: https://coverage.readthedocs.io/en/latest/changes.html |
| |
| |
| 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`_. |
| |
| .. _Python Community Code of Conduct: https://www.python.org/psf/codeofconduct/ |
| |
| |
| Contributing |
| ------------ |
| |
| Found a bug? Want to help improve the code or documentation? See the |
| `Contributing section`_ of the docs. |
| |
| .. _Contributing section: https://coverage.readthedocs.io/en/latest/contributing.html |
| |
| |
| Security |
| -------- |
| |
| To report a security vulnerability, please use the `Tidelift security |
| contact`_. Tidelift will coordinate the fix and disclosure. |
| |
| .. _Tidelift security contact: https://tidelift.com/security |
| |
| |
| License |
| ------- |
| |
| Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_. |
| |
| .. _Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0 |
| .. _NOTICE.txt: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
| |
| |
| .. |test-status| image:: https://github.com/nedbat/coveragepy/actions/workflows/testsuite.yml/badge.svg?branch=master&event=push |
| :target: https://github.com/nedbat/coveragepy/actions/workflows/testsuite.yml |
| :alt: Test suite status |
| .. |quality-status| image:: https://github.com/nedbat/coveragepy/actions/workflows/quality.yml/badge.svg?branch=master&event=push |
| :target: https://github.com/nedbat/coveragepy/actions/workflows/quality.yml |
| :alt: Quality check status |
| .. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat |
| :target: https://coverage.readthedocs.io/ |
| :alt: Documentation |
| .. |kit| image:: https://img.shields.io/pypi/v/coverage |
| :target: https://pypi.org/project/coverage/ |
| :alt: PyPI status |
| .. |versions| image:: https://img.shields.io/pypi/pyversions/coverage.svg?logo=python&logoColor=FBE072 |
| :target: https://pypi.org/project/coverage/ |
| :alt: Python versions supported |
| .. |license| image:: https://img.shields.io/pypi/l/coverage.svg |
| :target: https://pypi.org/project/coverage/ |
| :alt: License |
| .. |metacov| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5/raw/metacov.json |
| :target: https://nedbat.github.io/coverage-reports/latest.html |
| :alt: Coverage reports |
| .. |tidelift| image:: https://tidelift.com/badges/package/pypi/coverage |
| :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme |
| :alt: Tidelift |
| .. |stars| image:: https://img.shields.io/github/stars/nedbat/coveragepy.svg?logo=github |
| :target: https://github.com/nedbat/coveragepy/stargazers |
| :alt: GitHub stars |
| .. |mastodon-nedbat| image:: https://img.shields.io/badge/dynamic/json?style=flat&labelColor=450657&logo=mastodon&logoColor=ffffff&link=https%3A%2F%2Fhachyderm.io%2F%40nedbat&url=https%3A%2F%2Fhachyderm.io%2Fusers%2Fnedbat%2Ffollowers.json&query=totalItems&label=@nedbat |
| :target: https://hachyderm.io/@nedbat |
| :alt: nedbat on Mastodon |
| .. |mastodon-coveragepy| image:: https://img.shields.io/badge/dynamic/json?style=flat&labelColor=450657&logo=mastodon&logoColor=ffffff&link=https%3A%2F%2Fhachyderm.io%2F%40coveragepy&url=https%3A%2F%2Fhachyderm.io%2Fusers%2Fcoveragepy%2Ffollowers.json&query=totalItems&label=@coveragepy |
| :target: https://hachyderm.io/@coveragepy |
| :alt: coveragepy on Mastodon |
| .. |sponsor| image:: https://img.shields.io/badge/%E2%9D%A4-Sponsor%20me-brightgreen?style=flat&logo=GitHub |
| :target: https://github.com/sponsors/nedbat |
| :alt: Sponsor me on GitHub |