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

Uploaded CPython 3.12+Windows x86-64

covers-0.0.5.dev202511092105-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092105.tar.gz
Algorithm Hash digest
SHA256 5ccc19ee0961f69f75872333a03281db810c4f95e4d6b3c091cee87dad49af48
MD5 1a70eb2009604b6b6caead2dc5531cbd
BLAKE2b-256 db5bfbf9b125880efad09342574bd544fc196cdbaf9048e83e4a9ebabf62eb3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092105-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 002ac3c736d617f88f87704d2d17a1742e10a8248fa82a55940bc7f5cbdc46ac
MD5 22499842ec9dfcd6df1813609d7b073a
BLAKE2b-256 ed892327aa0facef127ab886be091dc0daf03bff3fe49a4b62c100b5bbf1ccfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092105-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98ddfd2a9d7ef7e468a44dc1b214645d330d7241f4fef4ac55d93d98f43561f9
MD5 86af4d326c70f5a72f2705f33175fa70
BLAKE2b-256 a02ca283e00f33c04a8122b6486b4d1a35fad96296ae64848d5029a3b60ec23c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092105-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 679a27bd69c09ded1427bf3045b7a27158ec9a133785520c7ed4fa78b7cc9c8f
MD5 c56655005d45d1d524370400eeba882b
BLAKE2b-256 0d06a03559a7980bf62b183549fe55e8e54cf2708fdb974533a343c1b8b5f020

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092105-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55ab6d933ca9a1c2d4cc60f1104c69e0b25adb7b888d754d297f7e71447b10c1
MD5 37aadcbbbb5555a83de7e59c89ef5c89
BLAKE2b-256 63516e6faba8a1dfded0f11d6e1bb860fa493bea7f2263a2f3b60a9170b02f8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202511092105-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1c95ba194fa9d2d07a9466242532375972559eec980276e20d876bbf7e5e58a1
MD5 6bd87580b6d9fa8331c46d0ac3aafd87
BLAKE2b-256 159745f550b4efdd3e3cf39ff6f218bb20349f2282da1fe8de498f616c7aa894

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