Skip to main content

runs tests in an order such that coverage increases as fast as possible

Project description

pytest_pitch

pytest_pitch runs tests in an order such that coverage increases as fast as possible. Typically 99% of the total coverage is achieved in 10% of the test session time.

example

use as pytest plugin for faster coverage increase

First create persistent time-coverage record via pytest-donde

python -m pytest [YOUR SESSION ARGS] --donde=/path/to/src

where /path/to/src is the code region to cover.

Then pass the record file to the plugin via

python -m pytest [YOUR SESSION ARGS] --pitch

If You change your test definitions or test selection [YOUR SESSION ARGS] in step 2 without updating the record:

  • tests which are unknown to step 1 (e.g. newly defined tests, less strict test selection) will be put to the start of the execution order
  • tests which are known to step 1 but missing in step 2 (e.g. removed tests, stricter test selection) will just be filtered out. Any selection mechanisms should not conflict with the reordering.

use in your script

See this script as a demo which was used to create the image shown above.

background

The plugin employs Algorithm 1 from p. 3 of S. Khuller, A. Moss, J. Naor, The budgeted maximum coverage problem, Inf. Process. Lett. 70, 1999.

install

python -m pip install pytest_pitch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_pitch-1.0.5.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

pytest_pitch-1.0.5-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file pytest_pitch-1.0.5.tar.gz.

File metadata

  • Download URL: pytest_pitch-1.0.5.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for pytest_pitch-1.0.5.tar.gz
Algorithm Hash digest
SHA256 9592b0d634d2ebd5a75b605d9191b03dd20aaf6f48d931f087a6e89765d8718c
MD5 0e048a3fbe4f08f383aa34439914f135
BLAKE2b-256 09988b993bac3e0f12b8b7d10ae4378d56399a5f6b00119010577a1c800d72eb

See more details on using hashes here.

File details

Details for the file pytest_pitch-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_pitch-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 eaf6df306b02cb095b46e5b6719f8c28ffcbecef7d9cfc40ebbd569a7dd1e041
MD5 5fbdd77344919f594176a42b48d6e3be
BLAKE2b-256 555cf31dfcb414a9aa3b2f6d66b5371413f12125ea62d119ac2396a49b6c6ada

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page