Обновление глобальной переменной pytest

#python #python-3.x #pytest

Вопрос:

Мне нужно обновлять одну из переменных для каждого запуска (я использую pytest-repeat, чтобы повторить тест n раз). Однако переменная не обновляется.

Вот мой код:

 @pytest.mark.repeat(3)
class TestSample(BaseTest):
    ITER = 1

    def setup(self):
        super().setup()

    def test_steps(self):
        print(self.ITER)
       

    def teardown(self):
        self.ITER  = 1
        print(self.ITER)
 

Я ожидаю ITER , что значение будет увеличиваться при каждом повторении теста (здесь тест повторяется три раза), поэтому значение ITER должно быть обновлено. Но он отображается как 2 для всех запусков. Есть ли другой способ, которым я могу увеличить значение ITER.

Комментарии:

1. Откуда это BaseTest берется?

2. Вы обновляете переменную экземпляра вместо переменной класса. Тебе нужно self.__class__.ITER = 1 .

3. @MrBeanBremen — спасибо, это полезно