тест. выполнить все модули демонтажа

я использую funcargs в своих тестах:

def test_name(fooarg1, fooarg2):

у всех есть фабрики pytest_funcarg__, которые возвращают request.cached_setup, поэтому у всех есть разделы setup/teardown.

иногда у меня возникают проблемы с демонтажем fooarg2, поэтому здесь я поднимаю исключение. в этом случае игнорируйте все остальные разрывы (fooarg1.teardown, teardown_module и т. д.) и просто переходите к разделу pytest_sessionfinished.

есть ли в pytest возможность не собирать исключения и выполнять все оставшиеся функции разрыва?


person user3205834    schedule 17.01.2014    source источник


Ответы (2)


Вы используете pytest-2.5.1? Предполагается, что в pytest-2.5 и, в частности, в issue287 появилась поддержка запуска всех финализаторов и повторного вызова первого неудачного исключения, если таковое имеется.

person hpk42    schedule 18.01.2014
comment
спасибо, это то, что мне было нужно. похоже, мне нужно обновить мой pytest. еще раз спасибо - person user3205834; 07.02.2014
comment
Если этот ответ действительно отвечает на ваш вопрос, возможно, вы можете принять его, щелкнув зеленую галочку? Не в последнюю очередь это принесет вам некоторую репутацию. - person Frank T; 21.03.2014

В вашей функции разрыва вы можете поймать ошибку и распечатать ее.

def teardown(): # this is the teardown function with the error
    try:
        # the original code with error
    except:
        import traceback 
        traceback.print_exc() # no error should pass silently
person User    schedule 17.01.2014