Skip to main content

Pytest plugin to record discovered tests in a file

Project description

pytest-discover

A plugin to write pytest collect output to either a JSON file or a JSON lines file.

Install

pip install pytest-discover

Usage

  • Use the --collect-report together with --collect-only option to collect tests and generate a JSON file:
pytest --collect-only --collect-report=collect.json
  • Use the --collect-log together with --collect-only option to collect tests and generate a JSON lines file:
pytest --collect-only --collect-log=collect.jsonl

Produced JSON output

The JSON file generated by --collect-report option follows the DiscoveryResult JSON Schema.

Python tools can also use the DiscoveryResult dataclass to parse the JSON file.

Produced JSON Lines output

The JSON lines file generated by --collect-log option contains one JSON object per line. Each line is a JSON object that follows the DiscoveryEvent JSON Schema.

This schema is the union of the different events that can be emitted by the discovery process:

Python tools can also use the DiscoveryEvent dataclass to parse the JSON lines file, as well as the differnt event classes:

Note: The code generation task is automated using rye run generate-models project script.

Alternatives

  • pytest-json-report: This plugin not only generates a JSON report with collected nodes, but also with test results. It is a more complete solution than pytest-discover. However, there is no JSON schema to validate the output, nor JSON lines output.

Credits

  • pytest-report-log: This package was heavily inspired by the report-log plugin.
  • pytest-csv: The pytest-csv plugin was also a source of inspiration.
  • datamodel-code-generator: The dataclasses generation from JSON schemas is performed using datamodel-code-generator.
  • rye: Project management is easy thanks to rye.

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_discover-0.4.0.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

pytest_discover-0.4.0-py3-none-any.whl (11.7 kB view hashes)

Uploaded Python 3

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