Обеспечить параметризацию по умолчанию для приборов с pytest - PullRequest
0 голосов
/ 13 февраля 2020
  • Я не хочу параметризовать один и тот же набор параметров для группы тестов.

  • Всякий раз, когда я использую прибор, я также хочу использовать «параметризация по умолчанию». Эта «параметризация по умолчанию» означает меньше @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
...