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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200229.tar.gz
Algorithm Hash digest
SHA256 bdc0dc755b06484473b7b5398bb170b433898b7589822e1b22591b688b0b93c8
MD5 3c01a61b1b4809cc8f2de6c5a372727c
BLAKE2b-256 3d15e31f92d79a98f7bccd21d52dc3053d3d81f6bd609bc409034d02ecafbc64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200229-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c7b9c8165c7423d72bfec6c9ccf654e3d61ab25529ef7d257da7fbeee1d9bafc
MD5 41b5157134d01c8b1f30a4b44bd65fb1
BLAKE2b-256 2dee7c81bbda090a93bb29baa0585ecf5d9ad14f4841bbfd601dd07b460e54b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200229-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b0f101bafd3c839aa1fb0013f1f97351bd6dec7798b839997f3ed571252d647
MD5 1fd69f90ac5f49ce9f0bf27207c230fd
BLAKE2b-256 234bfd890f1e6d2cf658e6d44b46dad1775c92b178e24ee27c52a61ec3690450

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200229-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 09ae9f3aa3f2c3f55335c84fef803944e14ffebe823f6d1dbdf1a288be75f07c
MD5 8a9e408b0d131d53771e35713e71d3df
BLAKE2b-256 c3fc073e5efe07781b3e5b019b49a27c845f5975645fe6051a3c260e5b38edac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200229-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91efe4942fc649cc03fb0898a5840d4a076d2f45649ed080053ecf9526fcf33c
MD5 cdcbed7238ff7c97dcd7d782e0830189
BLAKE2b-256 665a39ac5683e35e2a68c9a95ab42970aa464643493eb67217fe37df76fb3455

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200229-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 813c644bb813c8d28bc9fce644295b0f73089c36861d1eb855b8542fb28f30c8
MD5 8289cccb8e1b8ce0c0bd97b949374bf0
BLAKE2b-256 8adb8591d553db7d81b5eb984980c7716c9781d2830d044ab33500638b9c5f38

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