Skip to main content

pytest plugin for test session metadata

Project description

pytest-metadata is a plugin for pytest that provides access to test session metadata.

License PyPI Travis Issues Requirements

Requirements

You will need the following prerequisites in order to use pytest-metadata:

  • Python 2.7, 3.6, PyPy, or PyPy3

Installation

To install pytest-metadata:

$ pip install pytest-metadata

Available metadata

The following metadata is gathered by this plugin:

Key

Description

Example

Python

Python version

3.6.4

Platform

Platform

Darwin-17.4.0-x86_64-i386-64bit

Packages

pytest packages

{‘py’: ‘1.5.2’, ‘pytest’: ‘3.4.1’}

Plugins

pytest plugins

{‘metadata’: ‘1.6.0’}

Additional metadata

You can provide your own metadata (key, value pair) by specifying --metadata on the commandline:

pytest --metadata foo bar

Note: You can provide multiple sets of --metadata:

pytest --metadata foo bar --metadata baz zoo

Continuous integration

When run in a continuous integration environment, additional metadata is added from environment variables. Below is a list of the supported continuous integration providers, along with links to the environment variables that are added to metadata if they’re present.

Note that if you’re using Tox to run your tests then you will need to pass down any additional environment variables for these to be picked up.

Viewing metadata

If you pass --verbose on the command line when running your tests, then the metadata will be displayed in the terminal report header:

pytest --verbose
============================ test session starts ============================
platform darwin -- Python 3.6.4, pytest-3.4.1, py-1.5.2, pluggy-0.6.0 -- /usr/bin/python
cachedir: .pytest_cache
metadata: {'Python': '3.6.4', 'Platform': 'Darwin-17.4.0-x86_64-i386-64bit', 'Packages': {'pytest': '3.4.1', 'py': '1.5.2', 'pluggy': '0.6.0'}, 'Plugins': {'metadata': '1.6.0'}}
plugins: metadata-1.6.0

Accessing metadata

To access the metadata from a test or fixture, you can use the metadata fixture:

def test_metadata(metadata):
    assert 'metadata' in metadata['Plugins']

To access the metadata from a plugin, you can use the _metadata attribute of the config object. This can be used to read/add/modify the metadata:

def pytest_configure(config):
  if hasattr(config, '_metadata'):
      config._metadata['foo'] = 'bar'

Plugin integrations

Here’s a handy list of plugins that either read or contribute to the metadata:

Resources

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-metadata-1.6.0.tar.gz (8.0 kB view hashes)

Uploaded Source

Built Distribution

pytest_metadata-1.6.0-py2.py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 2 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