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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

covers-0.0.5.dev202604020112-cp312-abi3-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

covers-0.0.5.dev202604020112-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file covers-0.0.5.dev202604020112.tar.gz.

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020112.tar.gz
Algorithm Hash digest
SHA256 7886393d40b5eeeb584be75ddbe1bd8a983a9b31710f501f392448e8819a4152
MD5 cf7f5b2a386bdf1cbdff427932d09f76
BLAKE2b-256 0d8959727bb1ccb93531991365c024734f13cfa0be6ad8881bc5b375ae15b713

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020112-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 267711fc6b751153ff31d0313def239f70dd34a55ac9274506a622547aa04940
MD5 805525e083cd2216869bd5c25f16c75b
BLAKE2b-256 41f5b3d941e3d89747d0aef8eb7a35d681a326a8331b85625fe921c5d7a4bb4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020112-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 928118a5f08caa3b9557e8fc1a945d62e29e9f74059e06fa6a807357c53c63da
MD5 d983afd13f52f0ca5bf21b5ab8782cae
BLAKE2b-256 aaa9a0dc98b58909f83f78aab7254aaf2782d7a7a39fc48239ec2f6497940354

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020112-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab7e927d38e7af6487613d972b96b475191b7733eab14a546a51db3275a00c26
MD5 fb5eb439e3a2cee3f5811acf47af5f3e
BLAKE2b-256 3d924d841f763f546b4f3de501ab910c264dd3858d17e8f669e6ce1814beda1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020112-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 42d2255162f8ef8f478b40d0805e8c61ce8da38508fd51f3cfa9cf603fe74b26
MD5 f35054952d32f41097735c597e65cbb1
BLAKE2b-256 c39d95b35adc8c1f112adf516fdcb76d058a50fec4eea5e111a2ac11e97d4a70

See more details on using hashes here.

File details

Details for the file covers-0.0.5.dev202604020112-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020112-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c4757b9ca499488ad7683768c3ad83d1e630b496ab84c19541cbb6e8bf64861
MD5 6893d90077fc5261fa1648bdc82b4e92
BLAKE2b-256 c7460d29f119ff4ff82245f9588be7c06a3c9f328aab07901887e448807608f3

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