Sobes.tech
Back to questions
Senior
7

Сколько раз будет запущен test_balance при наличии parametrize на классе и на тестовой функции?

Companies where asked
Tangem

Answer from AI

sobes.tech AI

Если в pytest используется @pytest.mark.parametrize и на уровне класса, и на уровне тестовой функции, то общее количество запусков теста — это произведение количества параметров на уровне класса и количества параметров на уровне функции.

Например, если на классе указано:

@pytest.mark.parametrize("x", [1, 2])
class TestClass:
    @pytest.mark.parametrize("y", [3, 4])
    def test_balance(self, x, y):
        pass

То test_balance будет запущен 2 (по x) * 2 (по y) = 4 раза с комбинациями:

  • x=1, y=3
  • x=1, y=4
  • x=2, y=3
  • x=2, y=4

Таким образом, параметризация на уровне класса и функции комбинируется, создавая декартово произведение параметров.

Это позволяет удобно создавать тесты с множеством комбинаций входных данных.