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

Uploaded CPython 3.12+Windows x86-64

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

Uploaded CPython 3.12+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020057.tar.gz
Algorithm Hash digest
SHA256 1645c22856f47981562f3182ced8f6c922561bd3e92f9b3ccd763a842fb0e9a1
MD5 54ecba7656319230085c4328b6eb65ca
BLAKE2b-256 b7fce4a43a89b15f92bd60dcc14c68f2041104693f6adbf85d16ff439ab618a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020057-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ec91d0fe4b28cc49da3e3f0ce2696832f0ee353a27b2474738f2d33df517caf3
MD5 5f81ff77c92483ec2c5d953de6fbf24e
BLAKE2b-256 c31c46ee2303dc4c212e4481678110293ba48fa953151f0967b3aaf3d26b1e76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020057-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e9c01b4c47e356e5d10f6963ee7de631a8c0a722bbfc33cccd9d501b550d8c6a
MD5 0ff2c2ef04dabac863d8e72448f32289
BLAKE2b-256 850fc2a4f8587f535815fe794eee76ed59a3e445717ac3d79d9fa45f70d4ee7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020057-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db195e2f0254b8825a5b8bb7f11832b8f757c40a9c765e0f1d65413345945db0
MD5 de8488c99f334e3601ef6eeef38a23b4
BLAKE2b-256 40f8b36fa44207efbd8f8dcd306096ae345620967342e5765817e4ffc73a53c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020057-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1474ebefdf7718b06616f13f14db69e6a849de862ebd84bac84b7b3954be3aa6
MD5 32de1974f82c7601451322fdd9836324
BLAKE2b-256 c2e0af364c8f6f89f06a40eb18ed3267df3491ef17052e3ea6fcac1b985d801b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for covers-0.0.5.dev202604020057-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5756abc66598f841f368a85775f6487739ad041315ddef32e886be41a7e4b966
MD5 1223b8e53ee27613b574983197f79d16
BLAKE2b-256 e403a8e4b1652b1c30efad037157e2f27a5c8a65e79d4965922cf89a7363d390

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