pytest插件:在parametrize中避免重复参数
项目描述
安装
只需从PyPI获取即可
python3 -m pip install pytest-auto-parametrize --user
用法
这是一个不使用此插件使用参数化测试的示例
import pytest
testparams = [
(1, 2, 3, 4, 5, 6, 7),
(7, 6, 5, 4, 3, 2, 1),
]
@pytest.mark.parametrize('a, b, c, d, e, f, g', testparams)
def test_many_args(a, b, c, d, e, f, g):
assert d == 4
参数列表必须重复,这很烦人。
使用此插件可以避免重复
import pytest
testparams = [
(1, 2, 3, 4, 5, 6, 7),
(7, 6, 5, 4, 3, 2, 1),
]
@pytest.auto_parametrize(testparams)
def test_many_args(a, b, c, d, e, f, g):
assert d == 4
自动推导的参数必须位于参数列表的开头,但任何其他参数都可以在此之后使用,例如 fixtures
import pytest
testparams = [
(1, 2, 3, 4, 5, 6, 7),
(7, 6, 5, 4, 3, 2, 1),
]
@pytest.fixture
def myfixture():
return 4
@pytest.auto_parametrize(testparams)
def test_many_args_and_fixture(a, b, c, d, e, f, g, myfixture):
assert d - myfixture == 0
限制
与@pytest.mark.parametrize(...)不同,装饰器@pytest.auto_parametrize(...)不能在同一测试函数中使用多次。但是,它可以与一个或多个@pytest.mark.parametrize(...)实例一起使用,只要“auto”参数位于参数列表的开头。
项目详情
关闭
pytest-auto-parametrize-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5187d9f720c58d749538977734c0b5ac2436fbcd6bf875c7e7162550e44bce56 |
|
MD5 | 34785f0f1eb44aff593e73a879f527c5 |
|
BLAKE2b-256 | 98c7ef8743a3b3489a59b811e33c3977e01ec550311198f6c88dd21f36de853a |
关闭
pytest_auto_parametrize-0.1.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8abe810a55af4fe920f55b1a1986e34ba3095d4d0a02424b9f906405b8a604b3 |
|
MD5 | f22a4b7a4a076585460141bd9649ce89 |
|
BLAKE2b-256 | 1f9f0e315c050f1d939252efa9237e746ac657614ab77e4186a639fd4ca708cf |