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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.4.dev202511092048.tar.gz
Algorithm Hash digest
SHA256 bc1aa147c306de7e54a27d37a7f980c50ff515d59b1a1f66c29fd056b10174b3
MD5 6c327e16e8b094ff96541543f87a0e7c
BLAKE2b-256 d1ca08f3cdd91202d87aed6ea65bc1021623ef74fa504fa8ec7d629bf84192cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.4.dev202511092048-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5ee753cf5aaaa90b2926fe09bad39692c46f3ddd90d623ad9f39216db7277157
MD5 25a21dd34243a63794402af8a8738665
BLAKE2b-256 fb5dd8d0a8de406537d4da790255b03c4ff043c7b5153431b0b9be31198f4ff4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.4.dev202511092048-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8cd1c0c1b18a70ea9fee7a3b058f4d91c2b801d6dd9daf110aba4173315edbc
MD5 712487c90ebb819dbbcdada1355cafb6
BLAKE2b-256 1ef787724080209c9ea2edd536bc1e188ac73e020021dad7397d6b69d459b102

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.4.dev202511092048-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7a9d3ec405d818b3a15efd383f463d961646e61e5c84615f0339c5bfbf11e732
MD5 cdfb4283b2ebc888b13e20590935431f
BLAKE2b-256 652b033c4409009d58152661a6d1257a50af05cab3c81a606d7b8239702b4e20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.4.dev202511092048-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b44ded48633d4d6cd7832629eabbca72cda5065238ac8ed9fc5589b48fee9c19
MD5 81b5e09dde4be968b6dff0c79b621bc7
BLAKE2b-256 9d04d7cde0d09d65900491479f98788be4a84fbee13e3042c93fc1cf3fa2313f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.4.dev202511092048-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c0b845e223e19e27c629acf3b2e9ecab3ceb4cdd9f8bb9d817500594b4468807
MD5 833b3f2a65ea2b9313246b0ca1fb352f
BLAKE2b-256 e5d74bb7e6e2dbe42bdb35fcb13d970f4593a141a332bee721006a8453b1f130

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