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

Uploaded CPython 3.12+Windows x86-64

covers-0.0.3.dev202511090205-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.dev202511090205-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.dev202511090205-cp312-abi3-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511090205.tar.gz
Algorithm Hash digest
SHA256 e849193edc42f8aeb2e1fd401dd306abdc46aa3c74bc447d9e91d475c576b9dc
MD5 2dcd822035aa4ef680b3d90b191973e8
BLAKE2b-256 a8287694cee0aec347bb9e2fdada107d093a79aed2b9790f9e5ccbe49382165b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511090205-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 190bc434b594b9b8401dfd371e805a981185146435150889ad56817f3804a7b0
MD5 e63c7fb5393fc6aa6a2f590f6f9d99ef
BLAKE2b-256 999e407762785a7ab7aca2c5ee051b7ba2a1b10573414b2fcc73265104d2ab17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511090205-cp312-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9a1d83883e7d2686c6d0febdd1b8d9cf1be4f9534e073c2795c5c8703e0d904f
MD5 515b9320b0575e227c22ece079a23814
BLAKE2b-256 8e6c63c5ebcd0478050f47b2c2facf1982c3b730301ba1f246f25206a44c8988

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511090205-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a5c29cbdf1962e07c4e1b5cd7b06a4ce2e1c7f1a29c41bf15ae7ca707ed253a3
MD5 4515f9d22b84afcac6f9e3a85d2f9462
BLAKE2b-256 1ed4b8535a3c899322488f79a352b15f0b1ccdf3613eb9248acf43968ff961ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.3.dev202511090205-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d534410c233d42d225ccab26f51c31c6d5b4f7cf0e4e7ae9173a0ef537d5afe
MD5 4d8c53ffbc46bbc328728af92f436878
BLAKE2b-256 55dbfbd1ab3292f52239b97a7a08f4b78b63952e2f95537d2289bdd8c429ab10

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