pytest-variables
pytest-variables is a plugin for py.test that provides variables to tests/fixtures as a dictionary via a file specified on the command line.
Requirements
You will need the following prerequisites in order to use pytest-variables:
- Python 2.6, 2.7, 3.3, 3.4, 3.5, or PyPy
- py.test 2.6 or newer
Installation
To install pytest-variables:
$ pip install pytest-variables
Additional formats
The following optional formats are supported, but must be explicitly installed as they require additional dependencies:
Human JSON
Human JSON is a configuration file format that caters to humans and helps reduce the errors they make. To install Human JSON support:
$ pip install pytest-variables[hjson]
YAML
YAML is a human friendly data serialization standard for all programming languages. To install YAML support:
$ pip install pytest-variables[yaml]
Specifying variables
Use the --variables command line option one or more times to specify paths to files containing your variables:
$ py.test --variables foo.json --variables bar.json
If multiple files are specified then they will be applied in the order they appear on the command line. When duplicates are encountered, the last to be applied will take priority.
Accessing variables
With a JSON variables file such as:
{
"foo": "bar",
"bar": "foo"
}
Specify the variables funcarg to make the variables available to your tests. The contents of the files are made available as a dictionary:
def test_foo(self, variables):
assert variables['foo'] == 'bar'
assert variables.get('bar') == 'foo'
assert variables.get('missing') is None