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.
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
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
Built Distribution
Hashes for pytest_pitch-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 698fd7244b63f53d46ba6ca1ff4bf9dbacdd9b0e3f886a86d3b977abb36d7d65 |
|
MD5 | 8e70ad70e0c9a3785db47efcd22a2b0c |
|
BLAKE2b-256 | d7b5691a259e3e7fa19d7a96bbad5504763ddb686cea42778d35c4851446177e |