CO
coady/pytest-parametrized
Pytest decorator for parametrizing tests with default iterables.
Pytest decorator for parametrizing tests with default iterables, providing alternative syntax for pytest.mark.parametrize.
Usage
Decorate tests with iterable default values. Other fixtures can still be used as normal.
functions
from parametrized import parametrized
@parametrized
def test(..., name=values):
"""test single parametrized arg with each value"""
@parametrized.zip
def test(name=values, name1=values1, ...):
"""test parametrized args with zipped values"""
@parametrized.product
def test(name=values, name1=values1, ...):
"""test parametrized args with cartesian product of values"""Zip before and after example:
@pytest.mark.parametrize("test_input,expected", [
("3+5", 8),
("2+4", 6),
("6*9", 42),
])
def test_eval(test_input, expected):
assert eval(test_input) == expected
@parametrized.zip
def test_eval(test_input=["3+5", "2+4", "6*9"], expected=[8, 6, 42]):
assert eval(test_input) == expectedProduct before and after example:
@pytest.mark.parametrize("x", [0, 1])
@pytest.mark.parametrize("y", [2, 3])
def test_foo(x, y):
pass
@parametrized.product
def test_foo(x=[0, 1], y=[2, 3]):
passpytest.param is supported for single values or .product.
fixtures
Parametrized fixtures which simply return their param.
fixture_name = parametrized.fixture(*params, **kwargs)Before and after example:
@pytest.fixture(params=[0, 1], ids=["spam", "ham"])
def a(request):
return request.param
a = parametrized.fixture(0, 1, ids=["spam", "ham"])Installation
pip install pytest-parametrizedTests
100% branch coverage.
pytest [--cov]On this page
Languages
Python96.3%Makefile3.7%
Latest Release
v1.7December 21, 2024Other
Created October 20, 2017
Updated December 21, 2025