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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601041109.tar.gz
Algorithm Hash digest
SHA256 40e7305619bdbcdd02711c9d5cfafe47887e6b1dc02881d9dcd11b4922e95ed1
MD5 f6c9d5637e65408efadc6296a449bcea
BLAKE2b-256 bffcaf75db0e62b4126c975dd1eaf5705dc188209719b47db2ff0c5d4074361a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601041109-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 65d11d4651227f49e0b664aaffcc4685a5dbb48435ea58a738f76d8d75ebfaa3
MD5 898918793f9cbe798c2eef47591c3b83
BLAKE2b-256 43e953cd44810562adcac3bc869babc189319e580461de03387f9a9dbebce35e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601041109-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c2335117416347cb03731a08a956da65b5e3c200618eec28b9a726280f35fb99
MD5 a8865e3ae8ae95d509c98bb10952d347
BLAKE2b-256 f86e1e497387bcd68b9d37f8d261d60392282d5abf8611fc5112793043909e63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601041109-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bda618e946284f5ede4a9f88ccf3578a31bd986235af2518af7a072c3fc32e2e
MD5 6115b3e4ab7a1a8a470c2e8fa2e84c5c
BLAKE2b-256 cd00f1700f5e5ba18d7cdd22385b27d0ce11cdfa112ab03381c3116e11c75d8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601041109-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f69626676937aeb2a2c94aac120273a704f67276c73d462f2fe9878733f1a8b
MD5 1d3ef2dd3df552072493600f23328505
BLAKE2b-256 da15a251e5c45f9924ad2ddfe1ef238e35a5aa5d31f99c2828c2414775401a90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202601041109-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d6a0f901d09d313f69312d5afefa61fca8fb5a22b92fa2f10ce5e3f049e730da
MD5 c85507e30d4152164a8f5f34fa080180
BLAKE2b-256 de79c67d80a733fabf587295c76d5aee5e1425898d7650f8480ad9f6e3268b54

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