Обрабатывать случаи тестирования, когда вы хотите инициировать действия, основанные на успешном прохождении теста - PullRequest
0 голосов
/ 31 августа 2018

Я запускаю тестовые случаи, используя pytest; хотя я хотел бы собрать некоторые логи и все zip, только если есть сбой

Я написал функцию, которая собирает логи и архивирует их, хотя я не могу найти способ фактически вызвать это для каждого неудачного случая. Я реализовал решение, используя декораторы @classmethod для setUpClass и tearDownClass; но это происходит только после того, как все тесты были выполнены, а не когда конкретный тест не пройден.

В каждом тесте я запускаю простой assertFalse(a < b, "the test did fail". Я хотел бы вызвать функцию, которая выполняет сбор журналов только тогда, когда это условие фактически сработало.

1 Ответ

0 голосов
/ 01 сентября 2018

Кажется, что нет прямого способа сделать это в операторе assert, или я не смог найти способ для этого.

Я только что использовал try-catch, и в try я вызываю исключение, а в коде catch я вызываю функцию. Не уверен, что это лучший способ, но он работает в моем случае

try:
    if (a < b):
        raise ValueError ("wrong output, collecting logs")
except ValueError:
    # call function to parse logs
    self.parseoutputonerror(a, b, "/tmp/out.zip")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...