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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.4.dev202511091708-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.4.dev202511091708.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.4.dev202511091708.tar.gz
Algorithm Hash digest
SHA256 5487d0d58d11680911acdbcd60933816e138d1951723ef2a02c025af160e5bc8
MD5 91263b69b3db7e75cd448ac857acbd29
BLAKE2b-256 f1c15ab6ee726cfb6eef62813a052761665533676f2da25323f088cd3f23499b

See more details on using hashes here.

File details

Details for the file covers-0.0.4.dev202511091708-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for covers-0.0.4.dev202511091708-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5f691f24f7f0a88662b2020c5e210757d95ce5f56f1d94c42e08366d6af796d9
MD5 7280134ce3147c5a1c8db2caf22abb91
BLAKE2b-256 31714749281db741051f9ca73298da40aa853fb8b40f31cca0f7b145ac829e24

See more details on using hashes here.

File details

Details for the file covers-0.0.4.dev202511091708-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.4.dev202511091708-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01f69862a91bd44c6787315fc1b6f88fa3b87b777bce1da8c7e4a51777c23a6e
MD5 93e527508dde42f1285cef8fd0f9ae0d
BLAKE2b-256 0a79e2d92df87260ebcd432ea57a05ad94f6498ec03c55c3ad0e49eb861b2f54

See more details on using hashes here.

File details

Details for the file covers-0.0.4.dev202511091708-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for covers-0.0.4.dev202511091708-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1106ac50f904f5fdac343e16bd9755d81235881ae0803a251c5906a02b7f60cd
MD5 cc01f0cbd3f61d7f16b4bfc26a1317c9
BLAKE2b-256 0a6252ab268ec85a4504438d072a8b49db47cc1aa5b0e172b4fc62119471c923

See more details on using hashes here.

File details

Details for the file covers-0.0.4.dev202511091708-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for covers-0.0.4.dev202511091708-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fef499b322c0e3e71aa2016fce260c34e6e288cfb88a24cfbbe19b5513c5454
MD5 6eb1b1038d8914fe4da17e6aa15565ae
BLAKE2b-256 1bb0166ce3785d423a14ef481f3db75b6da01b4c1bd48ee271a736dac6a1123a

See more details on using hashes here.

File details

Details for the file covers-0.0.4.dev202511091708-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.4.dev202511091708-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8f49468cf3da1ee1e370bd49b99c93c8d82b9cc8c60eaee37c9e5c55dbd30041
MD5 96559c5a1c6d79d0a45df97c32467008
BLAKE2b-256 830518a4f603c36eeac171e74bfe1825c141faf8045c8b7d213fbc6f9c371565

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