Skip to main content

Collects tests metadata for future analysis, easy to extend for any data store

Project description

Pytest-stats

This library is collecting metadata about your test executions, and enables you to send it to a datastore of your liking.

Architecture

The library is designed in a hexagonal architecture in mind - separating data collection and reporting. There are two main parts to the code - metadata collection and reporting. the collection engine stores the metadata in pytest's stash (for session and for test) and uses pytest built-in hooks in order to populate the data and trigger the reporting. The reporting part is allowing reporters to register, then delegates the actual work to the registered reporters, enabling easy customization.

Implementation guide

In order to include pytest-stats capabilities in your code, all you need to do is to install the package pip install pytest-stats.
However, this will only provide you with a text report provided by the built-in DefaultTextReporter. In order to store the data in your own DB you'll need to:

  1. Create a new reporter (inherit the abstract ResultsReporter class)
  2. Register an instance of your reporter using the provided new hook pytest_stats_register_reporters.
    Example:
@pytest.hookimpl()
def pytest_stats_register_reporters(reporters:'ReportersRegistry'):
    reporters.register(MyReporter())

Implementation details

how is data collected and reported?

Most data is collected by hooking the following pytest-provided hooks:

  • pytest_sessionstart
  • pytest_sessionfinish
  • pytest_runtest_protocol
  • pytest_runtest_makereport
  • pytest_exception_interact

New hooks available

  • pytest_stats_register_reporters: used to register a new reporter. More than one reporter can be registered at the same hook.
    Invoked as part of pytest_configure
  • pytest_stats_env_data: Enables adding custom environment information to the session data.
    Invoked as part of pytest_sessionstart

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_stats-0.0.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

pytest_stats-0.0.3-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file pytest_stats-0.0.3.tar.gz.

File metadata

  • Download URL: pytest_stats-0.0.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1022-azure

File hashes

Hashes for pytest_stats-0.0.3.tar.gz
Algorithm Hash digest
SHA256 c6056e1dab0bb73e8837c74f48b5ac53368506a057a4dc37a174b970f6124bda
MD5 fe8676f4dd831979206b726197f73cd2
BLAKE2b-256 7bec5d881d021a78026ac121141461c5068fc713113fe4e9d0fb3b5f986a910b

See more details on using hashes here.

File details

Details for the file pytest_stats-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pytest_stats-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.5.0-1022-azure

File hashes

Hashes for pytest_stats-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7f7786b9ae17d832881c3ec09bf70d11ffe377daedb0ae371054e44dd799c8dc
MD5 38b8332157047205043ff60449f70471
BLAKE2b-256 1605e387d9313de443b3b90510c342342b36eff5a90c0cafce1abca6dbfc869a

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