Skip to content

pytest plugin to set environment variables in pytest.ini or pyproject.toml file

License

Notifications You must be signed in to change notification settings

pytest-dev/pytest-env

Repository files navigation

pytest-env

PyPISupported Python versionscheckDownloads

This is a pytest plugin that enables you to set environment variables in a pytest.ini or pyproject.toml file.

Installation

Install with pip:

pip install pytest-env

Usage

Native form in pyproject.toml

[tool.pytest_env] HOME = "~/tmp"RUN_ENV = 1TRANSFORMED ={value = "{USER}/alpha", transform = true} SKIP_IF_SET ={value = "on", skip_if_set = true}

The tool.pytest_env tables keys are the environment variables keys to set. The right hand side of the assignment:

  • if an inline table you can set options via the transform or skip_if_set keys, while the value key holds the value to set (or transform before setting). For transformation the variables you can use is other environment variable,
  • otherwise the value to set for the environment variable to set (casted to a string).

Via pytest configurations

In your pytest.ini file add a key value pair with env as the key and the environment variables as a line separated list of KEY=VALUE entries. The defined variables will be added to the environment before any tests are run:

[pytest]env = HOME=~/tmp RUN_ENV=test

Or with pyproject.toml:

[tool.pytest.ini_options] env = [ "HOME=~/tmp", "RUN_ENV=test", ]

Only set if not already set

You can use D: (default) as prefix if you don't want to override existing environment variables:

[pytest]env = D:HOME=~/tmp D:RUN_ENV=test

Transformation

You can use existing environment variables using a python-like format, these environment variables will be expended before setting the environment variable:

[pytest]env = RUN_PATH=/run/path/{USER}

You can apply the R: prefix to keep the raw value and skip this transformation step (can combine with the D: flag, order is not important):

[pytest]env = R:RUN_PATH=/run/path/{USER} R:D:RUN_PATH_IF_NOT_SET=/run/path/{USER}

About

pytest plugin to set environment variables in pytest.ini or pyproject.toml file

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

    Contributors 14

    Languages