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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200158.tar.gz
Algorithm Hash digest
SHA256 60c8e4e7186e1d8cf526a1a8ef6d76cf845601b365657fa0fbd3861575b0fc7d
MD5 387b34d5646919cf0990cf28a826bb48
BLAKE2b-256 5afb0204df3aad5454a575d659e31a2c9453d984c351d7e66c27529e4cd9ea86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200158-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 65bac3743bad6df3b239c7bb5106f6dcbe630b71892bfec40f777134f11b2fdc
MD5 cd6449a01a7a4a226069cb492770a0f1
BLAKE2b-256 cd4c37f70b10f3c96056751846d95de88a2555680d0b840be7c967bcbe292aed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200158-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4ea025a8292d4d8c5684f149b33f1c02d47defb7390a50603de0588b37a570c
MD5 7f7f56653110cc973abb491326b4a725
BLAKE2b-256 e16aaeac86d640c0b0ae29d09a4557630973cd5f0046f488556d242dee78116a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200158-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6dba16b63b45ef1c8c8fe9f59b5e7720a5bca50dcb3e8938a62be49063f93520
MD5 3b518a99df85e754aa2162c292544d23
BLAKE2b-256 6313f39cab64b0bdb2e30d578216fc12946a44fd5d29ae72b45ad397fe7a21a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200158-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f32006cf01116149766c3acd24bdd6cac31907225f07e1bcf01e72106555e61
MD5 c52f4343b1e07aea41598e9f1713352f
BLAKE2b-256 51d91ad8aec2ccf363be7ba6027019585d469aa975a5fe8f96f54e537664fe58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202512200158-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b922363ad2dac6c47e135a7c9cd2eef3b2049b406341985e5a5814ec438b003e
MD5 dbafc3afbdb5e770d8156c19e0c9136b
BLAKE2b-256 5a240cecaa70bc09ecf386cf754352b0a3b8bcc6f1979f5343f5c0d40913d9f4

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