跳过主要内容

pytest插件:在parametrize中避免重复参数

项目描述

这是对pytest的拒绝拉取请求#780的替代方案。

安装

只需从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 (2.7 kB 查看哈希值)

上传时间 源代码

构建发行版

pytest_auto_parametrize-0.1.0-py2.py3-none-any.whl (4.9 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面