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.5.dev202511092245.tar.gz (333.1 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.5.dev202511092245-cp312-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

covers-0.0.5.dev202511092245-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

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

covers-0.0.5.dev202511092245-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.5.dev202511092245-cp312-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.5.dev202511092245-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.5.dev202511092245.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092245.tar.gz
Algorithm Hash digest
SHA256 d5d5e9a1eef797a033bf55ae312e2c4585a40573ccdd40064910aaafde7557ea
MD5 4cb22efb9615512a7ec0c0caa6d79363
BLAKE2b-256 e9027d88502d2b71414a563073fd4964f51823608deb86bbe0740dc178c1f699

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511092245-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092245-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c717dfee329b1b7d4c348bb9dd9912ec762703ec76bc1d90ed2901c823b32a49
MD5 1b1bac36fb0282aa339ee7cfffcf4142
BLAKE2b-256 5749518f8803b43184b13f414dcf0378282b1a43e66def713df821738a72bbf3

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511092245-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092245-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a8f010350ebf07e65b5cebbcfcbd48f0e110f159874a911ca643fcfb7aeaa43
MD5 583e721dc9ceb035c09b3494a91759cb
BLAKE2b-256 d1606bc125663d545625b9c9e2614df8b08dff81c4af2896a844fd0a7e9e8ae5

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511092245-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092245-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ea8b295934b5636a427cbc9dc08817fbc824f4eb19e4718bb2be24f4dc00f894
MD5 5eaef04c1c064594d183541401afe9b4
BLAKE2b-256 b91525eb240d370b7703c48e8151f2e1e0a730930532eae5b808c47fbfd42a74

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511092245-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092245-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20cf00f1208f229afb790799fb94b5b9c0c1e447b10dba44a414f956bce88b84
MD5 bddb116f6135300b72ed70e2c939d90e
BLAKE2b-256 b0e13ceaf71e3ad513476969fff5488e0aa9090165361e4b2fd9bd09b1b699a5

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202511092245-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092245-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ddb98a6a836e6ec7c15593eb06ffe5d992ec8216e1424e6e4db37344638eed72
MD5 f43103144330ea236b69853a366a1e3c
BLAKE2b-256 ed29882443f6d5bf303c82c12efad21037fd6517936bd18e06cabbbadbec8278

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