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
Таким образом, параметризация на уровне класса и функции комбинируется, создавая декартово произведение параметров.
Это позволяет удобно создавать тесты с множеством комбинаций входных данных.