pytest插件,用于用默认iterable参数化测试。
pytest-parametrized的Python项目详细描述
Pytest plugin对于使用默认iterable参数化测试, 为pytest.mark.parametrize提供替代语法。
用法
用iterable默认值修饰测试。
功能
fromparametrizedimportparametrized@parametrizeddeftest(name=values,...):"""test single parametrized arg with each value"""@parametrized.zipdeftest(name=values,name1=values1,...):"""test parametrized args with zipped values"""@parametrized.productdeftest(name=values,name1=values1,...):"""test parametrized args with cartesian product of values"""
前后压缩示例:
@pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+4",6),("6*9",42),])deftest_eval(test_input,expected):asserteval(test_input)==expected@parametrized.zipdeftest_eval(test_input=("3+5","2+4","6*9"),expected=(8,6,42)):asserteval(test_input)==expected
示例前后的产品:
@pytest.mark.parametrize("x",[0,1])@pytest.mark.parametrize("y",[2,3])deftest_foo(x,y):pass@parametrized.productdeftest_foo(x=(0,1),y=(2,3)):pass
固定装置
fixture_name=parametrized.fixture(*params,**kwargs)
示例前后:
@pytest.fixture(params=[0,1],ids=["spam","ham"])defa(request):returnrequest.parama=parametrized.fixture(0,1,ids=["spam","ham"])
安装
$ pip install pytest-parametrized
注意parametrized
可以通过在conftest.py中将其注册为插件来添加到pytest的命名空间中。
pytest_plugins='parametrized',...
然而,pytest鼓励importing modules explicitly。
测试
100%分行覆盖。
$ pytest [--cov]
更改
1.1
- Pytest 4兼容性
1.0
parametrized
关键字选项
0.2
fixture
关键字选项