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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200206.tar.gz
Algorithm Hash digest
SHA256 5d6b3447a378ee9447f8c9bf902d6896349c0942313a3e5e1be3128648c22664
MD5 9caf62d5aa6b3f08f30496d64fd79a36
BLAKE2b-256 915119a302faa281c2ea2c4e6ff1056143116d87fc8bc52095b7a4d6dcfc02b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200206-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2f9d711cc8bc3577cb92798c7f243c9de8445a8fc03083846a9ccd8230686291
MD5 f20370c5a5c96b2a15c1e6a3c3e85ea6
BLAKE2b-256 81c0f80ce06d0e83a4b43fa6f5164b0758dcdf2b45acc6c1cb782c69f9f442a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200206-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80178f12d77ac4ac0d0059a89b406470498fdfb5688d4e25c046e309faafdd8c
MD5 b81fc0899bd2be2f04f8c48fba180712
BLAKE2b-256 b8ba181cef54e9c52ed23ce6a2464baef363241266f447599715a11ac4edd925

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200206-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f1df6d6d477273624e14525e61e83d932e25d37e3386c4656bce9ecf9241c748
MD5 5ff137abd5feceb62ca66ad73bd815a0
BLAKE2b-256 f8aeed6fba74b83e3195e00ad427b3bb44621f8733880bb097508a3be89bbb37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200206-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa3f10bbb3b6148ac055d006f67a850f32c8edca6d8ccd2cb3c44d1108ac8846
MD5 daa4d82f2f45a523d4784480fb8d4160
BLAKE2b-256 6660cb5636da6c18f2bde673a12477e736c1908e768964209f0fe038ee65a335

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200206-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8087c9c8a5cc493090d9f0ce75a015f8cf4992a4fd81f98d484eb6cca2ddc12c
MD5 f826e0b0b414ada53de8b58d2b941b89
BLAKE2b-256 330c705f5d54a3feb0ce49a0105d8dc9d262b94d87412fc39c9d1924ca79e32e

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