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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.5.dev202604020117-cp312-abi3-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

covers-0.0.5.dev202604020117-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file covers-0.0.5.dev202604020117.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020117.tar.gz
Algorithm Hash digest
SHA256 c92ae7ff09854e8e99004b696dacea6add85c53d2c61f3ed25e6ccada9e50281
MD5 0a31ddfab2ff620f97eedf1646d85c7b
BLAKE2b-256 f7fb7b35b02d8b26df1df86497090786594b85fe7ac5ec535380729bd605e893

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020117-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 32eb366a4f4b558f5fc08c149ac3b07f920d3724dcaa55b2e63dba2278a95cca
MD5 75cebd134286e21a65218af02c3dc2cb
BLAKE2b-256 a8b8a29a2356d72499d6c160eec211e72b37f214f1fd76f716037c0d5bbc1d96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020117-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3a79a0a044997533271bff3e6722730efd236c0dd649a6f4505a004244c67c75
MD5 1c03a69c8b3846d21daf293bb34479dd
BLAKE2b-256 a7986648c31906e930af3b0314f30bdbddd3e43f05762ec1d63427b636537030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020117-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a94e4357e8525ceaa86b504691c55b5e73e0bb4b2aba46632235ac110dda673
MD5 7529d993a6bf2cdf93cacb2e48034c0b
BLAKE2b-256 a3f33be8f2fea04851772bb561313066919a7f6876aed09b9b05466ef10b4079

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020117-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dfaacdc0f8dac3cd6e484a6b5900c3e45975f4867a3e2bb0bbe248743c8babfc
MD5 71dc2d350ee975b169e61fd98c426b97
BLAKE2b-256 ed8e6e94c1826aef177765559231b4e2530888c678fe8857bc93a6ac154fa899

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202604020117-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020117-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 546e14eb2f16fe8355e9faebbabef4a4fd37f804e3d5263628c92ea2d3cd100e
MD5 1b799f04602743133a86242316b060cd
BLAKE2b-256 4fc78cff015f1a6cc55bfdef1bf6d9523d425c9b6d17dabf3c9738a81aca9229

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