Skip to main content

Near Zero-Overhead Python Code Coverage

Project description

Covers: Near Zero-Overhead Python Code Coverage

Covers is a fast Python code coverage tool, originally based on SlipCover. This version has been re-written as a Rust / PyO3 extension for improved performance and maintainability.

license pypi pyversions tests

About Covers

Covers is a fast code coverage tool. It tracks a Python program as it runs and reports on the parts that executed and those that didn't. That can help guide your testing (showing code that isn't being tested), debugging, fuzzing or to find "dead" code.

Past code coverage tools can make programs significantly slower; it is not uncommon for them to take twice as long to execute. Covers aims to provide the same information with near-zero overhead, often almost as fast as running the original Python program.

How it works

Previous coverage tools like Coverage.py rely on Python's tracing facilities, which add significant overhead. Instead, Covers uses the new sys.monitoring API to collect coverage information with minimal performance impact. The core data collection is implemented in Rust for maximum efficiency.

Getting started

Covers is available from PyPI. You can install it like any other Python module with

pip3 install covers

You could then run your Python script with:

python3 -m covers myscript.py

Using it with a test harness

Covers can also execute a Python module, as in:

python3 -m covers -m pytest -x -v

which starts pytest, passing it any options (-x -v in this example) after the module name. No plug-in is required for pytest.

Platforms

Our GitHub workflows run the automated test suite on Linux, MacOS and Windows, but really it should work anywhere where CPython does.

Contributing

Covers is under active development; contributions are welcome! Please also feel free to create a new issue with any suggestions or issues you may encounter.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

covers-0.0.3.dev202511091646.tar.gz (333.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

covers-0.0.3.dev202511091646-cp312-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.3.dev202511091646-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

covers-0.0.3.dev202511091646-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

covers-0.0.3.dev202511091646-cp312-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.3.dev202511091646-cp312-abi3-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

Details for the file covers-0.0.3.dev202511091646.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091646.tar.gz
Algorithm Hash digest
SHA256 dda6dc44deac6149f72f33f2f8402f09edd092ce69b74007fc5ece199cd8b6b4
MD5 819d785024173158ae47c94a2e995a6e
BLAKE2b-256 cef58a38a69d1d5cc07a9e833f7324068fdfe2c5831652c5bc593b2eff716645

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511091646-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091646-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6f20860fe9d5ca6f36134151b3bac8d5db4f025a57236d6b6bf5004c90da3c4d
MD5 b204defa9814cd125543e8e1d123f125
BLAKE2b-256 e5b657c0e59584281935ee6678ae7e63b0bd1332113ec4c30719e05558b8f6ca

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511091646-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091646-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b6e8768732bd04f555a8a0273b7af20285137723a5d90a089cd76a8b4717536b
MD5 ae7c6f48e772003f4912025e1832dc41
BLAKE2b-256 5b45963bccd7856bf49606d44a91b49a1c1759c00803a1ad0c90d582b41325ba

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511091646-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091646-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2f0e1977a56dfbc82d4cfe69290e8735924ac3efc3c57ea959aacd98b986bd1f
MD5 5e929c54023004b12ea8a8e92f3823e1
BLAKE2b-256 f87c7131a72096f924c11a4b4cef97857a544bc15bf23b117448be4a56c7a1ba

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511091646-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091646-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c93863b4418fcfba73bfda87e14ab3e3b37fefe439310e4156de005892d66ca1
MD5 85d1859e111a7182e80d5ffc50e7123d
BLAKE2b-256 74624cb4b95acd94e86b3f4e29bc8a20a6342bb48280d83eec2fc15c121197a7

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511091646-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091646-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 32e1fd318951c42f9d101bda62ab5dbbc3859af2169a6266978d466ce090f2b4
MD5 d98739c763c33b2b8b8a485962ce253e
BLAKE2b-256 42323ebb63ce6ba3aa36107f08df90204884b3c92c3dd191d344f4870598ffdc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page