Skip to main content

record pytest session characteristics per test item (coverage and duration) into a persistent file and use them in your own plugin or script.

Project description

pytest_donde

pytest_donde dumps per-test-item coverage and duration into a persistent record file and offers an API to access this record in your plugins or scripts.

details

create persistent record

python -m pytest --donde=/path/to/src

This creates a donde.json record file with the following information for every test item:

  • run duration (sec),
  • covered lines of code w.r.t. /path/to/src

by wrapping pytest-cov, evaluating its output, and putting this together with collected test item durations.

access record

from pytest_donde import Record
record = Record.from_file('donde.json')

A demo example (which is trivial, because it uses only durations, not coverage):

class PluginPreferFastest:

    def __init__(self, path_input):
        self.record = Record.from_file(path_input)

    def pytest_collection_modifyitems(self, items):

        def key(item):
            try:
                return self.record.nodeid_to_duration[item.nodeid]
            except KeyError:
                # test is unknown to the donde.json record,
                # possibly it was skipped there or was added after the record was made
                # we prefer it to run at the beginning
                return 0.0

        items[:] = sorted(items, key=key)

install

python -m pip install pytest-donde

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_donde-1.1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

pytest_donde-1.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file pytest_donde-1.1.0.tar.gz.

File metadata

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

File hashes

Hashes for pytest_donde-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9722f899a657da9cb953f7bbb0b780933ddaa3ff93ea751af75f616714cc9af7
MD5 d010a08257d628d920160d32f2731ecc
BLAKE2b-256 4f46215e049542be2e133ade1d7e965a57b1491ca342b593a51aa7eab360d9c2

See more details on using hashes here.

File details

Details for the file pytest_donde-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_donde-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cc22865959ba5530b8d6b9782ff50385542e8122f083ffe75a6c02e075c1792
MD5 11435add9048e4576b2914402a5b9f39
BLAKE2b-256 bf47ab419d66c4ff57f1435dba06581e79b9049007897e337e6572c2cbcabd3a

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