使用pytest为装置提供默认参数化

2024-04-24 01:05:27 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 我不想为一系列测试参数化同一组参数

  • 无论何时使用夹具,我都希望使用“默认参数化”。那些“默认参数化”意味着代码中的@pytest.mark.parametrize更少

  • 在某些情况下,将测试分组到一个类中并将整个测试类参数化可能会有所帮助。但我有几个固定装置的组合

如何将“默认参数化”设置为装置?某些装置是具有多个参数的类

我目前的解决方案很乏味:

import pytest
import itertools

class A:
    def __init__(self, x, y):
        self.x = x
        self.y = y


def big_data():
    return [1, 2, 3]

@pytest.fixture(
    params=itertools.product(big_data(), [True, False])
)
def a(request):
    return A(*request.param)


def test_1(a):
    int(a.x + a.y)


@pytest.mark.parametrize("v", [10, 100])
def test_2(a, v):
    assert (a.x < v) or a.y

Tags: testimportselfdata参数returnpytestrequest