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.dev202511091637.tar.gz (333.3 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.dev202511091637-cp312-abi3-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.3.dev202511091637-cp312-abi3-manylinux_2_34_x86_64.whl (1.6 MB view details)

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

covers-0.0.3.dev202511091637-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

covers-0.0.3.dev202511091637-cp312-abi3-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.3.dev202511091637-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.dev202511091637.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091637.tar.gz
Algorithm Hash digest
SHA256 a3755b29dfa16867b9bca741313f6b19799bd36a1fd4608dcad4f418783d8e74
MD5 f51b5004eae4d11df7f3d98a84a4bae2
BLAKE2b-256 7bed0c58207e95bf26cf7be9165bb968649b02535a3346149f00d3e4915f5906

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091637-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 15f383c7db9e85c32aa94dbf0d1ebd2bd24c544246bed86d335961995b0ae0dd
MD5 05cc03e6f1324698d0282b3544638d81
BLAKE2b-256 38939c27e0e65dfd91e30ff2f3c2317c568537ca4ce5bb6c0efda8a63eb68772

See more details on using hashes here.

File details

Details for the file covers-0.0.3.dev202511091637-cp312-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091637-cp312-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c197e549167611e16e14b271249e53c3ee2f8b38bda82eca8916ea85fc983547
MD5 e273c8e7ba1b1f4e244c20ee98adc305
BLAKE2b-256 48568538bb9492d3aefaf5aa15bea24c78d39c58cb5764f92e69d786e8cfe870

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091637-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f825f2798756566dcdd5a8e7015591d48c8163d5ae944278ea8e80cfd8b0ba36
MD5 59b5191a18829b5b1cd8ad86c6d8128c
BLAKE2b-256 d0b9bbc900797111f7bd1523c6deabb2bafe18d47d355d499d254aa31b75c669

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091637-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 baecf891da5cf3f0553c3dc85a9a1d26430684064cd645f1cebf9649ae1238e7
MD5 4e0414effb29beb190f7aec0eb63e131
BLAKE2b-256 543d58b026edbacfa3e26c7928f37d5ccd66d568c30a60691138f71ae096b45f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511091637-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c815c9ba59930554324ea751e9effcb1cc2df84613354ed61154aabec18b7627
MD5 cac9ace2c9e837dc944b704ece6af8e0
BLAKE2b-256 d643c66620e3efe31757554e65760a663e263e21e5088ff09bfc3d16340d846a

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