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.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

pytest_stats-0.0.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pytest_stats-0.0.1.tar.gz
  • Upload date:
  • Size: 5.8 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.1.tar.gz
Algorithm Hash digest
SHA256 f8cc74149dac6ea509324f22b4682b4b7c7e0d4e0e117e4b8c5fd48337fe55dd
MD5 8b15dca37043e0bf8883eba7ffc8ea20
BLAKE2b-256 b5b3cfc7ab0af06f1077982f1929515090dc9d596945cd1345b4751ce4f90c79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytest_stats-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 775fdaa0116bc2607c946a79a32344fad14d6a81a14d42c3bbfc98d513e87879
MD5 e143bc5aae581846597b2bd173a4cb69
BLAKE2b-256 65f9e5e85d4a7028655725e5435071bbb42edfd6a1cad7058d00c713827e0952

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