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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020119.tar.gz
Algorithm Hash digest
SHA256 7177932e998c5236cd6d9a748d6a4fc4d1faf9c16b8d0d0e6f617b07eec8f336
MD5 4d06371ee049ff15caf73a55bd360880
BLAKE2b-256 47440f60cdd45175dab71371ee78f54b4d0a5cecbb4b4d719ff0838c3e6c1411

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020119-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 098cddb31647939e290727b8679e7f7d2990197f39850eb47e56c9ae5e0f4207
MD5 91f7c1d302ede2c4e33c7653d9e086a2
BLAKE2b-256 960ecfe5b79065f6db1c4fa336b980b5d14a632275b516ef5c19f1884bb1d58f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020119-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 19bb60c75c17abd7dd3ab87ebe3b17dfed88158e5f29b9f8e3c91cceef0e7fbe
MD5 94a2878dff853c1a84a406e88e451b8d
BLAKE2b-256 527a2d7e9d16e8969fefb9b053c336b5d761e72be28ee68d3e619e6d77be2604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020119-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5961d58abbae6d2dc4802a10b6d00ad40b604969629e2e34fc4ef4f2fdb252ea
MD5 d1bddabb9d1dcee1c1cc29e332788943
BLAKE2b-256 993d131c199c5b9950f57e00e34f2c297be5e08fe757fd8e21e37292a3d67d60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020119-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2a5fcabf7c600908e64e78596769489426fc9fe91936020232a44fb9210b394b
MD5 6e9e49b6e75a0679547a10841c932d51
BLAKE2b-256 26ba326cbb6ae9984fca65b12c43b9eb8235644597a6cf207478a1c4d4095dc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020119-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a632387716cf6cfdabde81bd5240c0d9cb568cbfe9580b418aa0dd9afb8fb0c7
MD5 12cf58ce395a6b8d5eb3115e037e0068
BLAKE2b-256 babb1e0d768104f85f5d26408c9f134c9dba39ea018bd35ee4a521dc60f3012b

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